2016-12-31 16 views
-1

毎回、2つのテーブルにデータを挿入しようとしていますが、最初のテーブルはデータを取得しますが、連絡先データは空のままで、エラーが発生します:スカラー変数@telefoonnummerを宣言する必要がありますか?あなたは「@Telefoonnummer」を持っていますが、最後にあなたがsでそれを持っている値を割り当てるときに、後で@telefoonnummerのスカラー変数を宣言しなければなりませんか?

は年代を削除し、それが動作するSQLクエリで

private void button1_Click(object sender, EventArgs e) 
     { 

      using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Nickd\documents\VB\killerapp\killerapp\CVNeetKompleet.mdf;Integrated Security=True")) 
      { 
       SqlCommand CmdSql = new SqlCommand("INSERT INTO [Ledenlijst] (Voornaam, Achternaam, Adres, HuisNr, Postcode, Woonplaats, Geboortedatum) VALUES (@Voornaam, @Achternaam, @Adres, @HuisNr, @Postcode, @Woonplaats, @Geboortedatum)", conn); 

       conn.Open(); 
       CmdSql.Parameters.AddWithValue("@Voornaam", tbInvoer.Text); 
       CmdSql.Parameters.AddWithValue("@Achternaam", tbAchternaam.Text); 
       CmdSql.Parameters.AddWithValue("@Adres", tbAdres.Text); 
       CmdSql.Parameters.AddWithValue("@HuisNr", tbHuisNummer.Text); 
       CmdSql.Parameters.AddWithValue("@Postcode", tbPostcode.Text); 
       CmdSql.Parameters.AddWithValue("@Woonplaats", tbWoonplaats.Text); 
       CmdSql.Parameters.AddWithValue("@Geboortedatum", tbGeboortedatum.Text); 
       CmdSql.ExecuteNonQuery(); 

       SqlCommand CmdSql2 = new SqlCommand("INSERT INTO [Contact] (EmailAdres, Telefoonnummer) VALUES (@EmailAdres, @Telefoonnummer)", conn); 
       CmdSql2.Parameters.AddWithValue("@EmailAdres", tbEmail.Text); 
       CmdSql2.Parameters.AddWithValue("@Telefoonnummers", Convert.ToInt32(tbTelefoonnummer.Text)); 
       CmdSql2.ExecuteNonQuery(); 
       conn.Close(); 
      } 
     } 
+1

Telefoonnummer対Telefoonnummers:

正しいは次のようにする必要があります。ところで、なぜそれをintに変換していますか?先行ゼロが削除されます。それは電話番号で重要です。 –

+2

[あなたは既にAddWithValue()を使用して停止できますか?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)をチェックしてください。 '.AddWithValue()'の使用を止めると、予期せぬ驚くべき結果につながる可能性があります。 –

答えて

2

CmdSql2.Parameters.AddWithValue("@Telefoonnummer", Convert.ToInt32(tbTelefoonnummer.Text)); 
+1

次のような質問には具体的な理由があります:_簡単な入力ミスは未来の読者には役に立たない_ – Steve

+0

スティーブ:どちらですか? "低品質"?私はあなたが言及しているもののような密接な理由を見ていない –

+0

それはオフトピックリストにあります – Steve

関連する問題