错误:必须声明标量变量@newsSummary

时间:2016-11-21 18:08:26

标签: c# asp.net sql-server

据我所知,我已宣布@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();
            }
        }
}

1 个答案:

答案 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添加到您的参数中。

这应该作为一个简单的拼写错误关闭,但是两个命令文本之间缺少分号的错误仍然存​​在,并且会在下一步中咬你。