插入外键时必须声明标量变量错误

时间:2017-05-08 18:19:18

标签: c# sql-server database sql-insert

当我尝试使用按钮和文本框将数据插入数据库时​​,我遇到了这个问题。一切正常,除了表中的外键引发此错误:

  

必须声明标量变量" @ 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;
}

1 个答案:

答案 0 :(得分:2)

从错误中复制“IDprodajalne”。按Ctrl + F搜索您的问题。在这一行中它出现了两次:

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

它不出现在这一行:

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

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

修正query中的拼写:

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