2012-04-19 106 views
2

我正在學習使用visual studio 2010的基本c#,並且正在創建使用SQL Server數據庫的應用程序。 該應用程序將允許用戶在文本框中輸入文本到一個富文本框中,按一個按鈕,然後在文本框2中顯示「存儲」的單詞。這些存儲的單詞只是帶*的單詞。 我有我的數據庫文件,但我無法弄清楚如何爲它做代碼。到目前爲止,我有,使用SQL Server數據庫文件

SqlConnection myConn = new SqlConnection(@"Server=.\SQLEXPRESS;AttachDbFilename='C:\datafile.mdf';Integrated Security=True;User Instance=True"); 
con.Open(); 
SqlCommand com = new SqlCommand("SELECT name FROM bbc", con); 
SqlDataReader sdr = com.ExecuteReader(); 
while (sdr.Read()) 
{ 
    this.txtbox2.Text.Add(sdr[""]); 
} 

這是在我的按鈕處理程序。

我有我的數據文件設置,以便它是真的如何設置它從文本框1中獲取數據,並顯示在文本框中2

+0

請注意,您正在連接到連接字符串中的主數據庫。您應該連接到包含bbc表的數據庫,或者將完整的模式信息放入SQL查詢中。 – duraz0rz 2012-04-19 18:23:37

+0

對不起,我粘貼從我的舊代碼,請參閱更新 – user1300788 2012-04-19 18:26:51

回答

0

我會用這樣的:

//SQL Connection stuff here 
con.Open(); 
String queryStr = "SELECT name FROM bbc WHERE name LIKE '*%'"; 
SqlCommand com = new SqlCommand(queryStr, con); 
SqlDataReader sdr = com.ExecuteReader(); 

while(sdr.Read()) 
{ 
    this.textbox2.Text = sdr.GetValue(0).ToString(); 
} 

它更簡單,通常更高效,讓SQL限制查詢結果。

+0

我似乎得到此錯誤:在System.Data.dll中發生未處理的類型'System.Data.SqlClient.SqlException異常' 其他信息:An試圖爲文件C:\ datafile.mdf附加一個自動命名的數據庫失敗。具有相同名稱的數據庫存在,或指定的文件無法打開,或位於UNC共享上。 – user1300788 2012-04-19 18:18:43

0

可能是這樣的剛剛情況:

StringBuilder builder = new StringBuilder(); 
while (sdr.Read()) 
{ 
    string value = sdr["name"].ToString(); 
    if(value.Contains("*")) 
     builder.Append(value); 
} 

this.txtbox2.Text = builder.ToString(); 
0

如果你只希望顯示與「*」開頭的話 - 那麼你可以限制你的數據庫查詢只返回他們:

SELECT name FROM bbc where name like '*%' 

的「%」字符是一個通配符 - 這意味着只返回結果ST用'*'進行創作並以任何結束。

0

也許以下幾點:

while (sdr.Read()) 
{ 
    string value = sdr["name"].ToString(); 
    if(value.StartsWith("*")) 
     txtbox2.Text += value; 
} 

有幾點:

  • 把周圍的SqlConnection一個使用因此它會自動關閉它。
  • 我注意到你正試圖連接到主數據庫。爲什麼?
  • Dave對使用通配符%限制結果很有幫助。
相關問題