[Database] SqlServer: 使用带参数sql时"@必须声明"问题

    在使用带参数的sql时(sql server 2000),出现以下问题:
两种方法调用同一个数据库操作函数,只是在红色部分有区别,即传递参数名时是否带"@"符号。
   方法一在我本机测试无误,而用方法二时返出现错误:“必须声明变量@paraName
而我同事机器正好和我的结果相反。
   现在初步怀疑是数据库设置问题,因为我们用的不是同一个数据库,数据库版本都是sql server 2000. 如果朋友们有知道此问题的请指教!

 1  数据库操作函数
 2    ///   <summary>
 3               ///  向数据库里插长sql字段
 4               ///   </summary>
 5               ///   <param name="strSQL"> SQL语句 </param>
 6               ///   <param name="fs"></param>
 7               ///   <returns> 影响的记录数 </returns>
 8                 public   static   int  ExecuteSqlInsertLongSql( string  strSQL,  string  textValue,  string  strParaName)
 9              {
10                   string  strConn  =  System.Configuration.ConfigurationSettings.AppSettings[ " sqlserver " ];
11                   using  (SqlConnection connection  =   new  SqlConnection(strConn))
12                  {
13                      SqlCommand cmd  =   new  SqlCommand(strSQL, connection);
14                       string  paraName  =  strParaName;
15                      System.Data.SqlClient.SqlParameter Sqlpara  =   new  SqlParameter();
16                      Sqlpara.ParameterName  =  paraName;
17                      Sqlpara.SqlDbType  =  System.Data.SqlDbType.Text;
18                       // orapara.OracleType = System.Data.OracleClient.OracleType.LongVarChar;
19                      Sqlpara.Size  =  textValue.Length  +   1 ; // int.MaxValue; //
20                      Sqlpara.Value  =  textValue.ToString();
21                      cmd.Parameters.Add(Sqlpara);
22                       try
23                      {
24                          connection.Open();
25                           int  rows  =  cmd.ExecuteNonQuery();
26                           return  rows;
27                      }
28                       catch  (System.Data.SqlClient.SqlException E)
29                      {
30                          strErrMsg  =  E.Message;
31                           throw   new  Exception(E.Message);
32                      }
33                       finally
34                      {
35                          cmd.Dispose();
36                          connection.Close();
37                      }
38                  }
39              }
40  使用方法一:
41  string  strHtmlValue = this .HtmlEditor1.Text.Replace( " ' " , " '' " );
42  sql = " insert into wjb(scrq,scr,wjsm,wjnr,wjlxbm,shzt,wjm) values(' " + this .lb_fbrq.Text.Trim() + " ',' " + userID + " ',' " + this .txt_bt.Text.Trim() + " ',@paraName,'03','2',' " + str_slm + " ') " ;
43     
44                     
45                       if (conn.ExecuteSqlInsertLongSql(sql,strHtmlValue, " @paraName " ) == 1 )
46  // dot.gifdot.gif.
47 
48  使用方法二:
49  string  strHtmlValue = this .HtmlEditor1.Text.Replace( " ' " , " '' " );
50 
51  sql = " insert into wjb(scrq,scr,wjsm,wjnr,wjlxbm,shzt,wjm) values(' " + this .lb_fbrq.Text.Trim() + " ',' " + userID + " ',' " + this .txt_bt.Text.Trim() + " ',@paraName,'03','2',' " + str_slm + " ') " ;
52     
53                     
54                       if (conn.ExecuteSqlInsertLongSql(sql,strHtmlValue, " paraName " ) == 1 )
55  // dot.gifdot.gif.


       
  


转载于:https://www.cnblogs.com/abeen/archive/2007/01/27/632006.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值