asp.net 在SQLServer 中写一条简单的往数据库插入数据的存储过程,为什么总是报错。
报错(在此上下文中不允许使用名称 "ggggggfffgg"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。)
VS接受前台传递的参数
public void insertSite(string SiteName, string SiteUrl)
{
using (SqlConnection sqlconn = new SqlConnection(strconn))
{
sqlconn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "InsertSite";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@SiteName", SiteName);//传递过来的参数"ggggggfffgg"
cmd.Parameters.AddWithValue("@SiteUrl",SiteUrl);
//cmd.Parameters.AddWithValue("@FatherClassId",FatherClassId);
cmd.ExecuteNonQuery();
}
}
简化后的存储过程:(为什么还报错啊)
ALTER proc [dbo].[InsertSite]
@SiteName nvarchar(50),
@SiteUrl nvarchar(50)
as
declare @TempSelect nvarchar(500)
set @TempSelect ='insert into Site(SiteName)values('+@SiteName+')'
execute sp_executesql @TempSelect
望各位帮帮,在线等哦。 ASP.NET SQL?Server
[解决办法]
declare @SiteName nvarchar(50)
declare @SiteUrl nvarchar(50)
declare @TempSelect nvarchar(500)
set @SiteName='sadsajsjsjsj'
set @TempSelect ='insert into Site(SiteName)values('''+@SiteName+''')' -- 这样拼接,别忘了符号
print @TempSelect
你这边也是这个问题,传进去的ggggggfffgg拼接成sql语句后少单引号
楼主可以添加监控来查看sql语句