程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 使用帶參數sql時"@必須聲明"問題

使用帶參數sql時"@必須聲明"問題

編輯:關於SqlServer
在使用帶參數的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 //.
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)

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved