C# 如何使用c在数据库中查找文本#
可能重复:C# 如何使用c在数据库中查找文本#,c#,c#-4.0,c#-3.0,c#-2.0,C#,C# 4.0,C# 3.0,C# 2.0,可能重复: 我想详细搜索一个名字。。这是搜索按钮的代码 private void button1_Click(object sender, EventArgs e) { string connectionString = Tyres.Properties.Settings.Default.Database1ConnectionString; SqlConnection conn = new SqlConnection(connectionString); DataTab
我想详细搜索一个名字。。这是搜索按钮的代码
private void button1_Click(object sender, EventArgs e)
{
string connectionString = Tyres.Properties.Settings.Default.Database1ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
DataTable dt = new DataTable();
SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM table1 where Details like" + textBox1.Text, conn);
SDA.Fill(dt);
dataGridView1.DataSource = dt;
}
这个例子就是我的应用程序
我得到一个错误:
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
附加信息:在预期条件的上下文中指定的非布尔型表达式,靠近“likeelei”
我已尝试使用此代码搜索整数(如数量),它对我很有效:
private void button1_Click(object sender, EventArgs e)
{
string connectionString = Tyres.Properties.Settings.Default.Database1ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
DataTable dt = new DataTable();
SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM table1 where Quantity like" + int.parse(textBox1.Text), conn);
SDA.Fill(dt);
dataGridView1.DataSource = dt;
}
所以我需要一个关于第一个代码的帮助看起来你需要在SQL语句中添加一个空格,你只是在
textBox1.Text
的值后面加上一个空格,所以textBox.Text的值变成了like
的一个单词
SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM table1 where Details like " + textBox1.Text, conn);
看起来您需要在SQL语句中添加一个空格,您只是添加了textBox1.Text
的值,但没有空格,因此textBox.Text
的值变成了带有like
的一个单词
SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM table1 where Details like " + textBox1.Text, conn);
我还建议使用SqlParameters现在我遇到了另一个问题:System.Data.SqlClient.SqlException类型的未处理异常发生在System.Data.dll中。其他信息:无效的列名“Audi”。@user1951045您应该发布另一个问题以获得该问题。不确定如何从发布的内容中获得无效的列名。您通过textBox1
提供的任何内容都可能是问题的根源。动态构建的SQL可能很棘手,如果输入没有经过消毒,它们会允许SQL注入攻击,因此首选存储过程。他之所以会出现这种错误,是因为他在SQL中放入了一个简单的无引号字符串。因此,他的输入被视为一个列名。我还建议使用SqlParameters。现在我遇到了另一个问题:System.Data.SqlClient.SqlException类型的未处理异常发生在System.Data.dll中。其他信息:列名“Audi”无效。@user1951045您应该发布另一个问题来获取该信息。不确定如何从发布的内容中获得无效的列名。您通过textBox1
提供的任何内容都可能是问题的根源。动态构建的SQL可能很棘手,如果输入没有经过消毒,它们会允许SQL注入攻击,因此首选存储过程。他之所以会出现这种错误,是因为他在SQL中放入了一个简单的无引号字符串。所以他的输入就像一个列名。你在3小时内问了两次基本相同的问题。不要那样做你在3小时内已经问了两次基本相同的问题。不要那样做