Я использую свою программу для добавления учетных записей в базу данных.Я генерирую случайный номер счета, проверяю, существует ли этот номер счета в базе данных, и использую его для создания новой учетной записи, если его нет.Тем не менее я получаю сообщение об ошибке «Указанное преобразование не является допустимым» в строке Int32? RecordExist = (Int32?)check_Records.ExecuteScalar();
.
Я пробовал .Convert.ToInt32
, просто int
, double
, и я пытался осмотреть его как объект до приведения, но я не могу понять, в чем проблема.
string AccountNumber;
bool accountExists = true;
while (accountExists)
{
//GENERATE A RANDOM ACCOUNT NUMBER
Random rnd = new Random();
int acc1 = rnd.Next(0000, 9999);
int acc2 = rnd.Next(0000, 9999);
AccountNumber = "2000-" + acc1 + "-" + acc2 + ";";
using (MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.ConnectionString))
{
conn.Open();
//CHECK WHETHER ACCOUNT NUMBER EXISTS.
string Query = @"SELECT COUNT(*) FROM accounts WHERE Account_Number = '" + AccountNumber + "'";
using (MySqlCommand check_Records = new MySqlCommand(Query, conn))
{
Int32? RecordExist = (Int32?)check_Records.ExecuteScalar();
if (RecordExist.HasValue && RecordExist.Value > 0)
{
//ACCOUNT EXISTS, GENERATE ANOTHER ACCOUNT NUMBER
accountExists = true;
break;
}
else
{
//ACCOUNT DOES NOT EXIST, USE ACCOUNT NUMBER
accountExists = false;
lblNewAccountNumber.Text = AccountNumber;
}
}
conn.Close();
Спасибо за вашу помощь заранее, и я прошу прощения, если я допустил какие-либо ошибки!
РЕДАКТИРОВАТЬ: тип, который я использовал, был неправильным, и с помощью непосредственного окна Iсмог увидеть, что это должно быть Int64
.Теперь это работает!Спасибо!