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
------解决方案--------------------
insert into Site(SiteName)values(sadsajsjsjsj)
这个是输出后的SQL语句,你自己找哪里有问题
你的values('') 没有添加那个引号的,拼句子还不太熟练啊
------解决方案--------------------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
------解决方案--------------------sql字符串的书写如下: insert into [Inform] values('title','content','true','2012/1/12')
sql字符串,要向数据库中插入 字符串、日期,其两边是需要加上单引号的
修改代码如下: string sql = "insert into [Inform] values ('"+title+"','"+content+"','true','2012/1/12')"