2014-10-26 66 views
0

我在C#中編碼。我想搜索一個名字。我想從我連接的數據庫中顯示該人的詳細信息。但是,所有我得到的是未分配的局部變量的從數據庫中查找特定數據?

錯誤「USE。

我嘗試過初始化變量,它執行了,但沒有顯示輸出。

這裏是我的代碼.. 。

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     SqlConnection cn = new SqlConnection("SERVER=MITHILESH-PC\\SERVER101;Initial Catalog=People;Integrated Security=True"); 

     String find = " "; 
     TextBox1.Text = find; 

     String QueryString = "Select * from Members Where NAME='{find}' "; 
     SqlCommand cmd = new SqlCommand(QueryString,cn); 

     SqlDataReader dr = null; 

     cn.Open(); 
     dr = cmd.ExecuteReader(); 

     GridView1.DataSource = dr; 
     GridView1.DataBind(); 

     cn.Close(); 
    } 
} 
+1

在哪條線上出現此錯誤? – 2014-10-26 17:40:53

+0

你調試了你的代碼嗎?你的「博士」有行?你的'cmd'返回數據庫管理器中的任何數據?同樣使用'using'語句來處理你的'SqlConnection','SqlCommand'和'SqlDataReader'。 – 2014-10-26 17:50:39

+0

嘗試'String.format(「Select * from Members where NAME ='{%s}'」,find);'而不是''從成員中選擇*其中NAME ='{find}'; – 2014-10-26 17:52:36

回答

3
String QueryString = "Select * from Members Where [email protected] "; 
SqlCommand cmd = new SqlCommand(QueryString,cn); 
cmd.Parameters.AddWithValue("@Name", TextBox1.Text); 

添加值的SqlCommand的參數,這是正確的方式。在這種情況下,你也可以防止SQL注入攻擊。

而且在你的代碼的乞討:

String find = " "; 
TextBox1.Text = find; 

在這裏,你正在你的複選框的文本等於「」。如果要將textBox值存儲在變量find中,則應該這樣寫:string find = TextBox1.Text;

相關問題