2015-06-23 76 views
0

SQL語法中是否有任何錯誤?C#沒有給出一個或多個所需參數的值

SQL語法:

UPDATE Table1 SET 
     Username='Diana' , 
     Email='[email protected]' , 
     FirstName='' , 
     LastName='' , 
     CrediCardNum='' 
Where Username='Diana' 

它不斷給我的錯誤:

No value given for one or more required parameters.

我試圖重新啓動Visual Studio中,但一直給了同樣的錯誤

C#代碼

   f1.Connection1.Open(); 
      OleDbCommand Command = new OleDbCommand(); 
      Command.Connection = f1.Connection1; 
      if(m[6].Contains("Red")) 
      Command.CommandText = "UPDATE userdlt SET Username='"+textBox10.Text+"' , Email='"+textBox9.Text+"' , FirstName='"+textBox8.Text+ "',LastName='"+textBox7.Text+"',CrediCardNum='"+textBox6.Text+"' Where Username='"+m[0]+"'" ; 
      else 
       Command.CommandText = "UPDATE Table1 SET Username='"+textBox10.Text+"' , Email='"+textBox9.Text+"' , FirstName='"+textBox8.Text+ "' , LastName='"+textBox7.Text+"' , CrediCardNum='"+textBox6.Text+"' Where Username='"+m[0]+"'" ; 
      Clipboard.SetText(Command.CommandText); 
      Command.ExecuteNonQuery(); 
      f1.Connection1.Close(); 
      MessageBox.Show("Member UPDATED Succefully"); 

m陣列是字符串陣列

+0

能否請你告訴你的C#代碼呢? –

+0

請發佈您的完整代碼 – Sachu

+0

請發佈您的C#代碼。看起來你正在使用OleDb,但即使沒有更多的信息,也不清楚。 – maniak1982

回答

1

你的列名creditcardNum缺少t

Command.CommandText = "UPDATE Table1 SET Username='"+textBox10.Text+"' , 
Email='"+textBox9.Text+"' , FirstName='"+textBox8.Text+ "' , 
LastName='"+textBox7.Text+"' , CrediCardNum='"+textBox6.Text+"' Where 
Username='"+m[0]+"'" ; 

應該

Command.CommandText = "UPDATE Table1 SET Username='"+textBox10.Text+"' , 
    Email='"+textBox9.Text+"' , FirstName='"+textBox8.Text+ "' , 
    LastName='"+textBox7.Text+"' , CreditCardNum='"+textBox6.Text+"' Where 
    Username='"+m[0]+"'" ; 

你的表定義的圖片說CreditCardNum

+0

@downvoter無法理解爲什麼反對投票? – Sachu

+0

我不能投票,因爲我是一個新用戶所以這是一種小故障,我認爲 – Hackathon

+0

@Hackathon你不能投票..你可以upvote一次你得到15聲譽 – Sachu

0

我懷疑電子郵件地址中的'@'正在使SqlCommand認爲您傳遞了一個參數。避免這種情況的方法如下:

string sql =「UPDATE myTable SET col1 = @ val1,col2 = @ val2 WHERE col3 = @ val3」;

然後,一旦你已經創建了該SQL命令對象:

myCommand.Parameters.AddWithValue( 「VAL1」, 「[email protected]」);

等等。

+0

我將重寫代碼和使用參數謝謝你:D – Hackathon

+0

不知道它是否會幫助你的問題(它會反對一個SQL Server數據庫)。但無論哪種方式 - 這是很好的做法,並防止由於輸入錯誤而損壞數據庫。快樂的編碼。 – GinjaNinja

相關問題