Какой тип данных я храню 16-значный номер в базе данных? - PullRequest
0 голосов
/ 10 ноября 2018

Я новичок в 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

и теперь выдает ошибку переполнения. Не уверен, что происходит.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Использование BigInt приведет к серьезным ограничениям, как уже отмечалось, а использование Длинный текст (поле примечания) - это худшее , что вы можете сделать.

Итак, используйте Краткий текст или Десятичное число , в котором должно быть не менее 16 цифр:

enter image description here

0 голосов
/ 10 ноября 2018

что такое тип данных в db, если это int !!! измените его на BigInt, и он будет работать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...