2017-01-05 4 views
0

Es gibt einige Themen zu meinem Thema, aber ich konnte meine Probleme mit ihnen nicht lösen.Die Eingabezeichenfolge hatte kein richtiges Format. Command-Parameter hinzufügen C#

Jedes Mal bekomme ich die gleichen Nachrichten.

Verfahren:

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 [email protected] and [email protected] 

END 

Ich brauche die Subtraktion hier.

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); 
} 

Antwort

4

Durch die Verwendung von Add und AddWithValue Sie vier Parameter an den Befehl hinzufügen, obwohl beide sind @miktar Aber das Verfahren zu akzeptieren drei Werte; Sie sollten den dritten Parameter wie folgt geben:

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

@nozzleman: danke –

Verwandte Themen