作者Uihc (我 有我的倔強...)
看板C_Sharp
標題[除錯] 字串轉換有問題
時間Thu Nov 16 17:08:10 2006
不好意思,又來麻煩大家..( ̄▽ ̄#)﹏﹏
我想寫一個字串轉換的功能
白話一點說,想把地址中"1段"轉為"一段","2段"轉為"二段"…以此類推
我的問題是,測試了十筆,只有第一筆成功> <
真相在這裡:
http://photo.xuite.net/chiulin.wei/1190750/1.jpg
另外再問個問題,寫網頁時,我知道資料庫連結字串可以存在web.config
然後再利用ConfigurationManager.AppSettings去連資料庫
寫windows form時也知道資料庫連結字串是存在app.config
但是卻沒辦法利用ConfigurationManager.AppSettings去讀取字串,是為什麼呢??
我的程式如下:
private void Form1_Load(object sender, EventArgs e)
{
//連結資料庫
string connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=|DataDirectory|\\test.mdb";
OleDbConnection myConn = new OleDbConnection(connStr);
string SQLquery = "SELECT * From table1";
OleDbCommand myCommand = new OleDbCommand(SQLquery,myConn);
myConn.Open();
OleDbDataReader myReader = myCommand.ExecuteReader();
for (int i = 0; i < 11; i++)
{
myReader.Read();
//地址資料存在第四個欄位
//rtbMsg是RichTextBox控制項
rtbMsg.Text += myReader[3] + " ";
rtbMsg.Text += "\n";
//把資料中的全型數字先轉成半型
string strconv = Strings.StrConv(myReader[3].ToString(),
VbStrConv.Narrow, 0);
//section是我用來把段名從數字轉國字的方法
string cstr = section(strconv);
rtbMsg.Text += cstr + "\n";
}
myReader.Close();
myConn.Close();
}
private string section(string org)
{
string strNew="";
string strOld="";
for (int i = 15; i > 0; i--)
{
strOld = i.ToString() + "段";
//用迴圈去找傳過來的地址字串裡如果有包含"x段"
//就再利用switch去把數字段名轉為國字段名
if (org.Contains(strOld))
{
switch (i)
{
case 1:
strNew = "一段";
break;
case 2:
strNew = "二段";
break;
case 3:
strNew = "三段";
break;
: (略)
case 15:
strNew = "十五段";
break;
default:
strNew = "零段";
break;
}
// end switch
}
//end if
}
//end for
string cstr = org.Replace(strOld, strNew);
return cstr;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.64.235
推 GreatShot:為什麼不用Regular Expression @@? 11/17 03:12
推 michaelz:就是說...一行就搞定的東西 11/17 16:14
推 Uihc:一行?. ? 我有稍微去讀了一些RE的東西,可是阿拉伯數字轉國字 11/21 09:16
→ Uihc:除了用迴圈,還有用其他方式嗎?? 11/21 09:17