string myConnString = db.GetConnString();
string myUpdate = "insert into members (member_id, fio, DOLJNOST,DEPORT, BEGINWORK) values (gen_id (gen_members_id,1), '" + FioBox.Text.ToString() + "','" + PoscomboBox.Text.ToString() + "', '" + s + "', '" + AmissionDate.Text.ToString() + "')"; ;
FbConnection myConnection = new FbConnection(myConnString);
myConnection.Open();
FbTransaction myTxn = myConnection.BeginTransaction();
FbCommand myCommand = new FbCommand(myUpdate,myConnection, myTxn);
myCommand.ExecuteNonQuery();
myTxn.Commit();
myConnection.Close();
Не могу понять причину ошибки... arithmetic exception, numeric overflow, or string tr
Код:
При выполнении получаю ошибку
(arithmetic exception, numeric overflow, or string truncation)
указывающую на ExecuteNonQuery()
В чем проблема понять не могу...
Код:
string myConnString = db.GetConnString();
string myUpdate = "INSERT INTO members (member_id, fio, DOLJNOST,DEPORT, BEGINWORK) VALUES (gen_id (gen_members_id,1),@surname,@post, @dept,@some_date)"; ;
FbConnection myConnection = new FbConnection(myConnString);
myConnection.Open();
FbTransaction myTxn = myConnection.BeginTransaction();
FbCommand myCommand = new FbCommand(myUpdate,myConnection, myTxn);
myCommand.Parameters.Add(new FbParameter("@surname",FioBox.Text)); //Зачем у String вызывать ToString()?
myCommand.Parameters.Add(new FbParameter("@post",PoscomboBox.Text));
/*
в данном случае должности стоило бы хранить в отдельной таблицы для нормализации.
а в members сохранять идентификатор должности. (если бы использовался не ComboBox
вопросов бы наверно не возникло.
*/
myCommand.Parameters.Add(new FbParameter("@dept",s));//Что есть "s" ?
myCommand.Parameters.Add(new FbParameter("@some_date",AmissionDate.Text)); //Пусть будет так... если ты хранишь даты как строку (??)
//иначе используй DateTimePeaker.
myCommand.ExecuteNonQuery();
myTxn.Commit();
myConnection.Close();
string myUpdate = "INSERT INTO members (member_id, fio, DOLJNOST,DEPORT, BEGINWORK) VALUES (gen_id (gen_members_id,1),@surname,@post, @dept,@some_date)"; ;
FbConnection myConnection = new FbConnection(myConnString);
myConnection.Open();
FbTransaction myTxn = myConnection.BeginTransaction();
FbCommand myCommand = new FbCommand(myUpdate,myConnection, myTxn);
myCommand.Parameters.Add(new FbParameter("@surname",FioBox.Text)); //Зачем у String вызывать ToString()?
myCommand.Parameters.Add(new FbParameter("@post",PoscomboBox.Text));
/*
в данном случае должности стоило бы хранить в отдельной таблицы для нормализации.
а в members сохранять идентификатор должности. (если бы использовался не ComboBox
вопросов бы наверно не возникло.
*/
myCommand.Parameters.Add(new FbParameter("@dept",s));//Что есть "s" ?
myCommand.Parameters.Add(new FbParameter("@some_date",AmissionDate.Text)); //Пусть будет так... если ты хранишь даты как строку (??)
//иначе используй DateTimePeaker.
myCommand.ExecuteNonQuery();
myTxn.Commit();
myConnection.Close();
Кажется стоило бы поучить мат. часть.
PS: gen_id(gen_members_id,1) это генерация первичного ключа??? :eek:
Так теперь по пунктам=)
To что я у string вызывал ToString() это реально глупость... устранил
Для ввода должности я убрал ComboBox ибо отдельную таблицу делать не буду..
Да дата у меня хранится в строке и мне так удобно... в моём случае это не критично.. да я использую DateTimePeaker
И gen_id(gen_members_id,1) это действительно генерация первичного ключа... а что в этом удевительного?
тогда запрос упростился бы...
Код:
string myUpdate = "INSERT INTO members (fio, DOLJNOST,DEPORT, BEGINWORK) VALUES (@surname,@post, @dept,@some_date)";
при этом идентификатор автоматически бы сгенерировался.
В архиве нет файла FirebirdSQL.Data.FirebirdClient.dll