据我所知,我已宣布@newsSummary
,但我仍然收到此错误:
System.Data.SqlClient.SqlException:必须声明标量变量“@newsSummmary”。
我正在尝试使用图像设置新闻系统。我绝对也在我的HTML中声明了它。
这是我的C#
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.PostedFile != null)
{
string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
// Save files to disk
FileUpload1.SaveAs(Server.MapPath("/images/admin/news/" + FileName));
// Add Entry to DataBase
String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
string strQuery = "insert into tblFiles (FileName, FilePath) values(@FileName, @FilePath)" + "insert into tblNews (newsTitle, newsDate, newsSummmary, newsContent) values(@newsTitle, @newsDate, @newsSummmary, @newsContent)";
SqlCommand cmd = new SqlCommand(strQuery);
cmd.Parameters.AddWithValue("@FileName", FileName);
cmd.Parameters.AddWithValue("@FilePath", "/images/admin/news/" + FileName);
cmd.Parameters.AddWithValue("@newsTitle", txtnewstitle.Text);
cmd.Parameters.AddWithValue("@newsDate", txtnewsdate.Text);
cmd.Parameters.AddWithValue("@newsSummary", txtnewssummary.Text);
cmd.Parameters.AddWithValue("@newsContent", txtnewsmaincontent.Text);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try {
con.Open();
cmd.ExecuteNonQuery();
}
finally {
con.Close();
con.Dispose();
}
}
}
答案 0 :(得分:1)
使用相同的SqlCommand.CommandText运行两个sql命令时,需要用分号分隔这两个命令
string strQuery = @"insert into tblFiles (FileName, FilePath)
values(@FileName, @FilePath);
insert into tblNews (newsTitle, newsDate, newsSummmary, newsContent)
values(@newsTitle, @newsDate, @newsSummmary, @newsContent)";
感谢下面的Juharr,因为他注意到问题导致确切的错误消息是名称m
中的额外(或缺失)@newSummmary
。
目前尚不清楚您是否真的有一个名为Summmary
的字段,但是您可以解决问题,从查询中删除额外的m或将额外的m添加到您的参数中。
这应该作为一个简单的拼写错误关闭,但是两个命令文本之间缺少分号的错误仍然存在,并且会在下一步中咬你。