将值传递给SQL命令参数错误

问题描述:

有人可以告诉我,为什么我在这里得到错误。 如果将值传递给此行的参数
int qID = 10087;
将值传递给SQL命令参数错误

它工作正常,但是当我尝试这一行
int qID = Int32.Parse(corr [0]);

它给了我错误(失败),其余代码在两种情况下都是相同的。这里可能有什么问题?

int pID1 = 102; 
//int qID = 10087; 
int qID = Int32.Parse(corr[0]); 
using (var cn1 = new SqlConnection(WebConfigurationManager.ConnectionStrings["lConn"].ConnectionString)) 
        { 
         cn1.Open(); 
         string sql1 = "SELECT DISTINCT Q FROM QATXT WHERE S= @pID AND [email protected] "; 
         SqlCommand cmd1 = new SqlCommand(sql1, cn1); 
         cmd1.Parameters.AddWithValue("@pID", pID1); 
         cmd1.Parameters.AddWithValue("@qID", qID); 
         SqlDataReader rdr1 = cmd1.ExecuteReader(); 
         if (rdr1.Read()) 
         { 
          mainQTxt = (string)rdr1.GetValue(0); 
         } 

         cn1.Close(); rdr1.Close(); cmd1.Dispose(); 
        }//- End of cn 


        rep = mainQTxt ; 
+0

什么是确切的错误?看起来corr [0]不是一个有效的整数 –

+0

错误失败,实际上我正在使用AJAX, –

+0

corr [0]是一种字符串,我将它转换为int .. –

尝试改变int qID = Int32.Parse(corr[0]);int qID = Convert.ToInt32(corr[0]);

+0

同样的错误。你有想法,为什么它可以工作,即使当我尝试这样做:int qID = 10087; OR string qID =“10087”;它与两种方式的工作.. –

+0

因为那些是有效的整数......当然,你没有一个有效的整数'corr [0]' –

+0

corr [0]的值是什么? @MrLearner –