如何在 C# 中连接 SQL 并使用 Adapter 的命令
Posted
技术标签:
【中文标题】如何在 C# 中连接 SQL 并使用 Adapter 的命令【英文标题】:How can I connect the SQL in C# and using the command of Adapter 【发布时间】:2017-11-05 14:16:28 【问题描述】:private void button2_Click(object sender, EventArgs e)
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb");
cnn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb";
OleDbDataAdapter da = new OleDbDataAdapter("select count(*) Form nameList where name='" + textBox1.Text + "'and password ='" + textBox2 + "'", cnn);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
this.Hide();
Form2 frm = new Form2();
frm.Show();
这是我得到的错误:
System.Data.OleDb.OleDbException: '查询表达式'count(*) Form nameList where name=''and password ='System.Windows.Forms.TextBox, Text: ''中的语法错误(缺少运算符)。 '
【问题讨论】:
查询中应该是textBox2.Text
。顺便说一句,这段代码很容易发生 sql 注入。您应该使用参数化命令。
***.com/a/33688556/2946329
什么是Form
?使用 FROM
"select count(*) FROM nameList where name='"
并使用 Chetan 已经提到的参数
谢谢。但现在的问题是 System.Data.OleDb.OleDbException: 'Data type mismatch in criteria expression。'
【参考方案1】:
你不见了
-
Form 其错误的权利是 FROM
textBox2 在这里您将 textBox2 对象分配为密码,而不是其文本,因此它应该是 textBox2.Text
更正的代码
private void button2_Click(object sender, EventArgs e)
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb");
cnn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb";
OleDbDataAdapter da = new OleDbDataAdapter("select count(*) FROM nameList where name='" + textBox1.Text + "'and password ='" + textBox2.Text + "'", cnn);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
this.Hide();
Form2 frm = new Form2();
frm.Show();
【讨论】:
【参考方案2】:好吧,我必须用一个新的方法重写我的代码,它正在使用 oleDbDataAdapter。 问题是我想用 c# 创建一个登录并使用 oleDbDataAdapter 连接访问。我不知道如何使用选择功能到登录按钮,如何编写?
private void button2_Click(object sender, EventArgs e)
oleDbDataAdapter1.SelectCommand.CommandText =
"select * from book where usersname = '" + textBox1.Text + "' ";
oleDbDataAdapter1.SelectCommand.CommandText =
"select * from book where password = '" + textBox2.Text + "' ";
dataSet11.Clear();
oleDbDataAdapter1.Fill(dataSet11);
DataTable dt = new DataTable();
oleDbDataAdapter1.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
this.Hide();
Form2 frm = new Form2();
frm.Show();
else
MessageBox.Show("请检查您的用户名和密码");
【讨论】:
以上是关于如何在 C# 中连接 SQL 并使用 Adapter 的命令的主要内容,如果未能解决你的问题,请参考以下文章
需要有关在 asp.net C# 中使用的 sql 连接的信息