输入字符串格式不正确;添加命令参数c#

时间:2017-01-05 12:37:51

标签: c# sql string

有些主题与我的主题相关,但我无法解决他们的问题。

每次我收到相同的消息。

程序:

USE [onmuhasebe]
GO
/****** Object:  StoredProcedure [dbo].[stok]    Script Date: 5.01.2017 15:34:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[stok]
( @cari NVARCHAR(50),
  @urun NVARCHAR(50),
  @miktar INT

 )
 AS
 BEGIN
 update stok_giris SET miktar= miktar- @miktar WHERE cari=@cari and urun=@urun

 END

我需要减法。

try
{
    baglanti.Open();
    //int miktar = Int32.Parse(textBox4.Text);
    //int miktar = Convert.ToInt32(textBox4.Text);
    int miktar = Convert.ToInt32(textBox4.Text.Trim());


    SqlCommand mySqlCommand = new SqlCommand("stok", baglanti);
    mySqlCommand.CommandType = CommandType.StoredProcedure;


    mySqlCommand.Parameters.AddWithValue("@cari", comboBox2.SelectedItem.ToString());


    mySqlCommand.Parameters.AddWithValue("@urun", comboBox5.SelectedItem.ToString());

    mySqlCommand.Parameters.Add("@miktar", SqlDbType.Int);
    mySqlCommand.Parameters.AddWithValue("@miktar", miktar);

    mySqlCommand.ExecuteNonQuery();

}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

1 个答案:

答案 0 :(得分:4)

使用AddAddWithValue即使两者都是@miktar,您也会向命令添加四个参数但是该过程接受三个值;你应该给出第三个参数:

mySqlCommand.Parameters.Add("@miktar", SqlDbType.Int).Value = miktar;