关于报错 “必须声明标量变量 "@taskNum"“,这是什么原因??

this.taskNum = this.dgvUnfinishedTask.CurrentRow.Cells[3].ToString();
sql = @"select 任务明细 from TaskDetail where 任务编号 = @taskNum";
SqlConnection conn = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
D1 = new DataTable();
cmd.Parameters.Add("@taskNum", SqlDbType.VarChar, 50);

conn.Open();
cmd.Parameters["@taskNum"].Value = this.taskNum;
da.Fill(D1);
this.rtbTaskDetail.Text= D1.Rows[0][0].ToString();
conn.Close();
D1.Dispose();

忽然笑
浏览 372回答 2
2回答

慕的地10843

调试一下先,看在哪一行出错。还有就是我不知道你这个顺序对不对,我觉得不合适。比如正确的顺序是先Open连接,然后再做其它的操作,因为你的cmd里面在打开连接前,是什么都不存在的,包括你的"@taskNum"。只有打开了连接才存在,还有就是,既然有了参数了,就不要用this.rtbTaskDetail.Text= D1.Rows[0][0].ToString();。
打开App,查看更多内容
随时随地看视频慕课网APP