код ниже.в моем коде я обновляю существующую строку (из существующей таблицы), чтобы программа получала все обновленные значения из textBoxes.в конце (последний столбец) поля autoNumber таблицы, которое называется "codonsAutoNum"
Я не знаю, как получить значение (значение автонумерации) из данных.Мне нужно значение в позиции (в коде), где есть «??».
спасибо всем за помощь!
код:
private void update_Click(object sender, EventArgs e)
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Projects_2012\\Project_Noam\\Access\\myProject.accdb";
OleDbConnection myConnection = new OleDbConnection(connectionString);
string myInsertQuery =(String.Format("UPDATE tblCodons SET codonsCodon1='{0}', codonsCodon3='{1}', " +
"codonsTriplet1='{2}', codonsTriplet2='{3}', codonsTriplet3='{4}', codonsTriplet4='{5}', " +
"codonsTriplet5='{6}', codonsTriplet6='{7}', codonsFullName='{8}'" +
" WHERE codonsAutoNum='{9}'",codon1.Text, codon3.Text ,triplet1.Text, triplet2.Text,
triplet3.Text, triplet4.Text, triplet5.Text, triplet6.Text,
fullName.Text,??));
OleDbCommand myCommand = new OleDbCommand(myInsertQuery);
myCommand.Connection = myConnection;
myConnection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
РЕДАКТИРОВАТЬ: это действительно запуталось. Как мой код должен казаться?Куда мне нужно поместить «SELECT @@ identity»? И я не понимаю, почему я не могу просто взять значение?(Мне нужно это как индекс для выбранной строки, чтобы понять, где находится обновление. Это работало хорошо, когда я идентифицировал это (ниже), но это не позволило мне изменить поле полного имени .., есть лучшее решение, чем столбец autonumber?
private void update_Click(object sender, EventArgs e)
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Projects_2012\\Project_Noam\\Access\\myProject.accdb";
OleDbConnection myConnection = new OleDbConnection(connectionString);
string myInsertQuery =(String.Format("UPDATE tblCodons SET codonsCodon1='{0}', codonsCodon3='{1}', " +
"codonsTriplet1='{2}', codonsTriplet2='{3}', codonsTriplet3='{4}', codonsTriplet4='{5}', " +
"codonsTriplet5='{6}', codonsTriplet6='{7}', codonsFullName='{8}'" +
" WHERE codonsFullName = {9}",codon1.Text, codon3.Text ,triplet1.Text, triplet2.Text,
triplet3.Text, triplet4.Text, triplet5.Text, triplet6.Text,
fullName.Text,this.name));
OleDbCommand myCommand = new OleDbCommand(myInsertQuery);
myCommand.Connection = myConnection;
myConnection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
this.tblCodonsTableAdapter.Fill(this.myProjectDataSet.tblCodons);
имя = сохраненное значение полного имени, при каждом нажатии значение изменяется
еще один вопрос. Я пытался делать то же самое с e.Row (который я сохранял при каждом нажатиив таблице), и я получаю сообщение об ошибке «System.Data.OleDb.OleDbException (0x80004005): может содержать дублирующиеся значения в индексе, или в mainKey, или в отношениях»