私はC#を初めて使用するので、これが簡単な質問である場合は申し訳ありません。MS-Accessを介してデータベースをデータグリッドに接続しています。ユーザーに情報を入力してデータベースに保存してもらいます。「カード番号」はデータ型のエラーをスローするため、16桁にできないという問題があります。前もって感謝します!
OleDbCommand updateQuery = new OleDbCommand("INSERT INTO Profiles ([PROFILE NAME],[LOGIN EMAIL],[PASSWORD],[FULL NAME],[CARD NUMBER],[EXP MONTH],[EXP YEAR],CVV) VALUES(@name1,@email,@pass,@name2,@card,@expm,@expy,@cvv)", connection);
updateQuery.Parameters.Add("@name1", OleDbType.Variant).Value = textBox4.Text; //Profile Name
updateQuery.Parameters.Add("@email", OleDbType.Variant).Value = textBox2.Text; //Email
updateQuery.Parameters.Add("@pass", OleDbType.Variant).Value = textBox3.Text; //Pass
updateQuery.Parameters.Add("@name2", OleDbType.Variant).Value = textBox1.Text; //Full Name
updateQuery.Parameters.Add("@card", OleDbType.VarNumeric).Value = textBox5.Text; //CardNumber
updateQuery.Parameters.Add("@expm", OleDbType.Numeric).Value = comboBox1.Text; //EXPMonth
updateQuery.Parameters.Add("@expy", OleDbType.Numeric).Value = comboBox2.Text; //EXPYear
updateQuery.Parameters.Add("@cvv", OleDbType.Numeric).Value = textBox7.Text; //CVV
updateQuery.ExecuteNonQuery();
connection.Close();
MessageBox.Show("Profile Saved");
this.Close();
RefreshDBConnection();
注:コードを次のように変更しました:
updateQuery.Parameters.Add("@card", OleDbType.VarNumeric).Value = textBox5.Text; //CardNumber
そして今、それはオーバーフローエラーをスローします。何が起こっているのかわからない。
intの場合、dbのデータ型は何ですか!!! BigIntに変更すると、機能します:)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加