C# 如何通过文本框搜索表格?
我有一个从文本框中搜索数据库的查询。 我的问题是如何将搜索结果一列一列地插入到分隔的文本框中,我的意思是每一列进入一个文本框C# 如何通过文本框搜索表格?,c#,sql-server,C#,Sql Server,我有一个从文本框中搜索数据库的查询。 我的问题是如何将搜索结果一列一列地插入到分隔的文本框中,我的意思是每一列进入一个文本框 private void searchbtn_Click(object sender, EventArgs e) { SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Users\hry\Documents\Visual Studio 2010\Projects\Kargozini\Kargoz
private void searchbtn_Click(object sender, EventArgs e)
{
SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Users\hry\Documents\Visual Studio 2010\Projects\Kargozini\Kargozini\khadamat.sdf");
try
{
con.Open();
string SearchQuerry = "SELECT ID, radif, Name, Type, Description, Price FROM Users WHERE ID = '"+searchtxt.Text+"'" ;
SqlCeCommand com = new SqlCeCommand(SearchQuerry,con);
com.ExecuteNonQuery();
con.Close();
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
}
我假设,您的搜索将只返回一行。 您可以使用datareader来实现这一点。我用以下代码修改了您的函数:
private void searchbtn_Click(object sender, EventArgs e)
{
SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Users\hry\Documents\Visual Studio 2010\Projects\Kargozini\Kargozini\khadamat.sdf");
try
{
con.Open();
string SearchQuerry = "SELECT ID, radif, Name, Type, Description, Price FROM Users WHERE ID = '"+searchtxt.Text+"'" ;
SqlCeCommand com = new SqlCeCommand(SearchQuerry,con);
SqlCeDataReader sqlReader = com.ExecuteReader();
while (sqlReader.Read())
{
txtID.text = sqlReader.GetValue(0).ToString();
txtRadif.text = sqlReader.GetValue(1).ToString();
txtName.text = sqlReader.GetValue(2).ToString();
}
sqlReader.Close();
com.Dispose();
con.Close();
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
}
注意:您的代码易受sqlinjection攻击。学习避免它的方法。尝试以下方法:
private void searchbtn_Click(object sender, EventArgs e)
{
SqlConnection sql = new SqlConnection("Your String Connection");
SqlDataAdapter adapter = new SqlDataAdapter(@"Select Name, FileName From Table Where Name Like @Name", sql);
adapter.SelectCommand.Parameters.AddWithValue("@Name", string.Format("%{0}%", textBox1.Text));
}
select查询可以返回多少行。首先使用参数化查询,以便避免。然后看看这个,我忘了提到我使用本地数据库,这行代码是“SqlDataReader sqlReader=com.ExecuteReader();”我有此错误错误1无法将类型“System.Data.SqlServerCe.SqlCeDataReader”隐式转换为“System.Data.SqlClient.SqlDataReader”C:\Users\hry\Documents\Visual Studio 2010\Projects\Kargozini\searchform.cs 30 43 KargoziniTry在SqlDataReader=com.ExecuteReader()中将SqlDataReader更改为SqlCeDataReader;我还有一个问题,文本框方法只适用于我有一个返回值的位置,我的意思是当我有多个返回值时,例如当我的选择查询有多个返回值时,我的问题是如何在消息框中显示它