2017-05-08 74 views
1

我在尝试使用按钮和文本框向数据库中插入数据时遇到此问题。插入外键时必须声明标量变量错误

Must declare the scalar variable "@IDprodajalne"

我得到那种绝望,所以我真的需要你的帮助,现在:除了一个外键是表内引发此错误,一切工作正常。

if (textBoxImeProdajalca.Text != "" && textBoxPriimekProdajalca.Text != "") 
{ 
    try 
    { 
     string query = "insert into Prodajalec values (@IDProadajalne, @ImeProdajalca, @PriimekProdajalca)"; 

     using (connection = new SqlConnection(connectionString) 
     using (SqlCommand command = new SqlCommand(query, connection)) 
     { 
      connection.Open(); 
      command.Parameters.AddWithValue("@IDProdajalne", ComboBoxIDprodajalne.SelectedItem.ToString()); 
      command.Parameters.AddWithValue("@ImeProdajalca", textBoxImeProdajalca.Text); 
      command.Parameters.AddWithValue("@PriimekProdajalca", textBoxPriimekProdajalca.Text); 

      command.ExecuteNonQuery(); 
     } 

     MessageBox.Show("Uspešno dodano"); 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
else 
{ 
    MessageBox.Show("Vnesite vse podatke"); 
} 

和字符串中的声明,错误

SqlConnection connection; 
string connectionString; 

public Form1() 
{ 
     InitializeComponent(); 
     connectionString = ConfigurationManager.ConnectionStrings["Naloga.Properties.Settings.ProdajaConnectionString"].ConnectionString; 
} 
+0

你应该检查(http://blogs.msmvps.com/jcoehoorn/blog/2014 [我们可以停止使用AddWithValue()了吗?]/05/12/can-we-stop-using-addwithvalue-already /)并停止使用'.AddWithValue()' - 它可能会导致意外的和令人惊讶的结果... –

回答

2

复制 “IDprodajalne”。按Ctrl + F搜索你的问题。它出现了两次,都在这一行:

command.Parameters.AddWithValue("@IDProdajalne", ComboBoxIDprodajalne.SelectedItem.ToString()); 

它不会出现在这行:

string query = "insert into Prodajalec values (@IDProadajalne,@ImeProdajalca,@PriimekProdajalca)"; 

“IDPro 一个 dajalne” 是从 “IDProdajalne” 不同的字符串。它有另一个“a”。

修复一个拼写在query

string query = "insert into Prodajalec values (@IDProdajalne,@ImeProdajalca,@PriimekProdajalca)"; 
+0

鹰眼在这里... :) – Hituptony

+2

老鹰不使用Ctrl + F!如果他们这样做了,Outlook会让他们疯狂。 –

+0

该死的太容易了哈哈。非常感谢。 –