老师帮忙看看,自己找不出来哪错了
private void button4_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string cstr = @"Data Source=.;Initial Catalog=student;Integrated Security=True";
string paths = openFileDialog1.FileName;
string[] names = File.ReadAllLines(paths,Encoding.Default);
string sql = "insert into Score(sno,cno,grade) values('@SNO','@CNO','@GRADE')";
using (SqlConnection conn = new SqlConnection(cstr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
MessageBox.Show("!!!");
foreach (string str in names)
{
string[] arr = str.Split('-');
//string SNO = arr[0];
//string CNO = arr[1];
//string GRADE = arr[2];
MessageBox.Show(arr[0]);
MessageBox.Show(arr[1]);
MessageBox.Show(arr[2]);
cmd.Parameters.Add(new SqlParameter("SNO", arr[0]));
cmd.Parameters.Add(new SqlParameter("CNO", arr[1]));
cmd.Parameters.Add(new SqlParameter("GRADE", arr[2]));
MessageBox.Show(sql);
cmd.ExecuteNonQuery();
}
MessageBox.Show("数据导入成功!!!");
}
}
}
}
显示出来的sql语句就是insert into Score(sno,cno,grade) values('@SNO','@CNO','@GRADE'),明明都给赋值了,为什么还是不行啊???? C# 数据库
[解决办法]
insert into Score(sno,cno,grade) values(@SNO,@CNO,@GRADE)//把单引号去掉
[解决办法]
变量就不需要引号了
insert into Score(sno,cno,grade) values(@SNO,@CNO,@GRADE)
[解决办法]
[解决办法]
另外,sql parameter的名字要加@
cmd.Parameters.Add(new SqlParameter("@SNO", arr[0]));
cmd.Parameters.Add(new SqlParameter("@CNO", arr[1]));
cmd.Parameters.Add(new SqlParameter("@GRADE", arr[2]));