简单的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你传入了什么内容
------解决思路----------------------
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+''''

字符串的变量需要+'',在动态语句里用'转义一下。