此 Messages 表單顯示帶有這些資訊(ID、FROM、TO、TITLE、MESSAGE)的表格。
我正在嘗試搜索發送給某個用戶的所有訊息。用戶將在其中輸入他的姓名,Search_textBox然后它將過濾表以僅保留給該用戶的訊息。
private void Search_button_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = cmd.CommandText = "Select * from MessagesTable where To =" Search_textBox.Text;
cmd.Parameters.AddWithValue("@To", Search_textBox.Text);
DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
}
我收到此錯誤:
System.Data.SqlClient.SqlException: 'Invalid column name 'To'.'
uj5u.com熱心網友回復:
“search_name”引數包含什么?訊息?列名?
您的查詢是
Select * from MessagesTable where " search_name " = @From"
然后您將“search_name”指定為@From 的引數...所以我相信您的輸入是“Name”并且您的查詢現在看起來像這樣:
Select * from MessagesTable where Name = 'Name';
如您所述,此指定表中沒有任何名稱列。
uj5u.com熱心網友回復:
這是對的
private void Search_button_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from MessagesTable where [To]= @To";
cmd.Parameters.AddWithValue("@To", Search_textBox.Text);
DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
}
uj5u.com熱心網友回復:
您可以按如下方式進行更改。當然,如果我理解正確,您想通過從用戶那里獲得的輸入在訊息欄位中進行搜索。
private void Search_button_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from MessagesTable where MESSAGE = @From";
cmd.Parameters.AddWithValue("@From", search_name);
DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];
}
uj5u.com熱心網友回復:
嘗試使用 To,因為“To” - 關鍵字 SQL:
cmd.CommandText = cmd.CommandText = "Select * from MessagesTable where [To] =" Search_textBox.Text;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/478054.html
