Chaîne de connection Sql et parameters de dévers Visual Studio 2013

Using System.data.SqlClient; private void button2_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\\Users\\Antoni Angga\\documents\\visual studio 2013\\Projects\\FullAndStarving\\FullAndStarving\\FaD.mdf;Integrated Security=True"); { SqlCommand comm = new SqlCommand("insert into TabelProduksi(IdProduksi,IdPhoto,Tanggal Produksi,Nama Karyawan,Keterangan Photo,Photo) Values(@IdProduksi,@IdPhoto,@Tanggal Produksi,@Nama Karyawan,@Keterangan Photo,@Photo)", con); con.Parameters.AddWithValue("@IdProduksi",txtIdpro.Text); con.Parameters.AddWithValue("@IdPhoto",txtIdPhoto.Text); con.Parameters.AddWithValue("@Tanggal Produksi",dtmProduksi.Value); con.Parameters.AddWithValue("@Nama Karyawan", txtNamaKaryawan.Text); con.Parameters.AddWithValue("@Keterangan Photo", rxtKtrphoto.Text); con.Open(); comm.ExecuteNonQuery(); con.Close(); } 

pouvez-vous m'aider que les parameters sur ce que je ne peux pas find? Pourquoi ? et cette string de connection vrai maintenant? parce que j'utilise le server sql local: D

Si vos noms de colonne ont plus d'un mot, vous devez les utiliser avec des crochets comme [Tanggal Produksi] et [Nama Karyawan] etc. Mais je suggère de les changer en un mot. Et il serait préférable de garder vos noms de parameters un mot aussi.

Utilisez également l' instruction using pour disposer votre connection et votre command automatiquement au lieu d'appeler manuellement la méthode Close .

N'utilisez pas AddWithValue autant que vous le pouvez. Cela peut parfois générer des résultats inattendus et surprenants . Utilisez Add method overload pour spécifier votre type de paramètre et sa taille.

 using(var con = new SqlConnection(conSsortingng)) using(var comm = con.CreateCommand()) { com.CommandText = @"insert into TabelProduksi(IdProduksi,IdPhoto,[Tanggal Produksi],[Nama Karyawan],[Keterangan Photo],Photo) Values(@IdProduksi,@IdPhoto,@TanggalProduksi,@NamaKaryawan,@KeteranganPhoto,@Photo)"; // Add your parameters with Add method. con.Open(); comm.ExecuteNonQuery(); } 

En passant, en fonction de leurs noms, vos colonnes IdProduksi et IdPhoto doivent être de type numérique et non typées.

Prenez les espaces hors de vos champs et parameters.

vous avez utilisé le mauvais nom de paramètre dans votre requête, il devrait être comme

  SqlCommand comm = new SqlCommand("insert into TabelProduksi(IdProduksi,IdPhoto,TanggalProduksi,NamaKaryawan,Keterangan Photo,Photo) Values(@IdProduksi,@IdPhoto,@TanggalProduksi,@NamaKaryawan,@KeteranganPhoto,@Photo)", con); 

Vous devez également le replace par con.Parameters.AddWithValue