简单的sql存储过程有关问题
简单的sql存储过程问题。
我有一个页面后台的变量namestring,其中保存的是字符串。
后台代码:
SqlCommand comm = new SqlCommand();
//StringBuilder strSql = new StringBuilder();
//存储过程的参数---导出文件路径
SqlParameter path = new SqlParameter("@path", SqlDbType.NVarChar, 200);
path.Value = object_path;
comm.Parameters.Add(path);
SqlParameter namestring1 = new SqlParameter("@namestring1", SqlDbType.NVarChar, 50);
namestring1.Value = namestring;
comm.Parameters.Add(namestring1);
//设置超时时间为5分钟
comm.CommandTimeout = 300;
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "NameDBToExcel";
之后我写了一个存储过程
ALTER PROCEDURE [dbo].[NameDBToExcel]
@path nvarchar(200),
@namestring1 nvarchar(50)
AS
BEGIN
declare @sqlstr nvarchar(2000)
set @sqlstr='insert into OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=Yes;DATABASE='+@path+''',[sheet1$]) select Darpt_Name,Num_Code,
Name1,sex from BasicInfo_Table where Name1 = '+@namestring1+''。
报错列名namestring1冲突。
应该如何将后台变量的值传递给存储过程用于条件检索呢?谢谢
------解决思路----------------------
namestring1你传入了什么内容
------解决思路----------------------
------解决思路----------------------
字符串的变量需要+'',在动态语句里用'转义一下。
我有一个页面后台的变量namestring,其中保存的是字符串。
后台代码:
SqlCommand comm = new SqlCommand();
//StringBuilder strSql = new StringBuilder();
//存储过程的参数---导出文件路径
SqlParameter path = new SqlParameter("@path", SqlDbType.NVarChar, 200);
path.Value = object_path;
comm.Parameters.Add(path);
SqlParameter namestring1 = new SqlParameter("@namestring1", SqlDbType.NVarChar, 50);
namestring1.Value = namestring;
comm.Parameters.Add(namestring1);
//设置超时时间为5分钟
comm.CommandTimeout = 300;
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "NameDBToExcel";
之后我写了一个存储过程
ALTER PROCEDURE [dbo].[NameDBToExcel]
@path nvarchar(200),
@namestring1 nvarchar(50)
AS
BEGIN
declare @sqlstr nvarchar(2000)
set @sqlstr='insert into OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=Yes;DATABASE='+@path+''',[sheet1$]) select Darpt_Name,Num_Code,
Name1,sex from BasicInfo_Table where Name1 = '+@namestring1+''。
报错列名namestring1冲突。
应该如何将后台变量的值传递给存储过程用于条件检索呢?谢谢
------解决思路----------------------
namestring1你传入了什么内容
------解决思路----------------------
set @sqlstr='insert into OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=Yes;DATABASE='+@path+''',[sheet1$]) select Darpt_Name,Num_Code,这边貌似要这样
Name1,sex from BasicInfo_Table where Name1 = '''+@namestring1+''''。
------解决思路----------------------
ALTER PROCEDURE [dbo].[NameDBToExcel]
@path nvarchar(200),
@namestring1 nvarchar(50)
AS
BEGIN
declare @sqlstr nvarchar(2000)
set @sqlstr='insert into OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=Yes;DATABASE='+@path+''',[sheet1$]) select Darpt_Name,Num_Code,
Name1,sex from BasicInfo_Table where Name1 = '''+@namestring1+''''
字符串的变量需要+'',在动态语句里用'转义一下。