我需要您的帮助。我已经创建了表单并将一些数据插入SQL Server。但是我总是会出错。我认为在创建SQL Server连接时犯了一个错误。
代码在下面
OleDbConnection con = new OleDbConnection("Provider=sqloledb;SERVER=NEVZAT-PC;DATABASE=DENEME;User ID=11;password=1111;");
OleDbCommand cmd = new OleDbCommand("insert into isemri (isemrino,isyeri,isalani,isemridet,bastar,bittar)values(@isemrino,@isyeri,@isalani,@isemridet,@bastar,@bittar)", con);
cmd.Parameters.AddWithValue("@isemrino", Convert.ToInt32(textBox1.Text));
cmd.Parameters.AddWithValue("@isyeri", comboBox1.Text);
cmd.Parameters.AddWithValue("@isalani", comboBox2.Text);
cmd.Parameters.AddWithValue("@isemridet", richTextBox1.Text);
cmd.Parameters.AddWithValue("@bastar", dateTimePicker1.Value);
cmd.Parameters.AddWithValue("@bittar", dateTimePicker2.Value);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
我得到这个错误:
答案 0 :(得分:0)
从我看来,问题在于您在查询中使用了未声明的变量,您必须在插入之前声明变量,或者使用其他不使用变量的方法。
答案 1 :(得分:0)
您收到“必须声明标量变量”错误。
OleDb不支持命名参数。我想这就是 导致错误。相反,在SQL查询中,请使用
?
而不是 参数名称,并确保添加的参数顺序与 在查询中显示它们的顺序。
?
登录插入查询using
语句DBNull.Value
,也使用nullable
请检查以下代码:
OleDbConnection con = new OleDbConnection("Provider=sqloledb;SERVER=NEVZAT-PC;DATABASE=DENEME;User ID=11;password=1111;");
using(OleDbCommand cmd = new OleDbCommand("insert into isemri (isemrino,isyeri,isalani,isemridet,bastar,bittar) values (?, ?, ?, ?, ?, ?)", conn))
{
cmd.Parameters.AddWithValue("@isemrino", Convert.ToInt32(textBox1.Text));
cmd.Parameters.AddWithValue("@isyeri", comboBox1.Text ?? DBNull.Value);
cmd.Parameters.AddWithValue("@isalani", comboBox2.Text ?? DBNull.Value);
cmd.Parameters.AddWithValue("@isemridet", richTextBox1.Text ?? DBNull.Value);
cmd.Parameters.AddWithValue("@bastar", dateTimePicker1.Value ?? DBNull.Value);
cmd.Parameters.AddWithValue("@bittar", dateTimePicker2.Value ?? DBNull.Value);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}