ahmed_sa Ответов: 1

Когда обновление данных в листе excel до большего количества столбцов не работает почему


У меня есть имя листа excel Allprinting

содержит идентификатор пользователя,имя пользователя,UserNameAR,стране,CountryAR,член,MemberAR столбцы

Мне нужно сделать обновление данных в этом листе excel, если клиент изменит какие-либо данные в них

столбцы (идентификатор пользователя,имя пользователя,UserNameAR,стране,CountryAR,член,MemberAR)

но ниже код не работает для меня

так в чем же проблема

мой код

var fileName = string.Format("{0}\\Book502", Directory.GetCurrentDirectory());
var connection = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Mode=ReadWrite;Extended Properties=Excel 12.0 Xml;", fileName);
try
{
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection(connection);
                MyConnection.Open();
                myCommand.Connection = MyConnection;
            sql = "Update [AllPrinting$] SET UserName=@UserName and UserNameAR=@UserNameAR and Country=@Country and CountryAR=@CountryAR AND Member=@Member AND MemberAR=@MemberAR WHERE UserID=@UserID";
           
            myCommand.CommandText = sql;
                myCommand.Parameters.AddWithValue("@UserName", textBox2.Text);
                myCommand.Parameters.AddWithValue("@UserID", textBox1.Text);
               myCommand.Parameters.AddWithValue("@UserNameAR", textBox3.Text);
            myCommand.Parameters.AddWithValue("@Country", textBox4.Text);
            myCommand.Parameters.AddWithValue("@CountryAR", textBox5.Text);
            myCommand.Parameters.AddWithValue("@Member", textBox6.Text);
            myCommand.Parameters.AddWithValue("@MemberAR", textBox7.Text);
            myCommand.ExecuteNonQuery();
                MyConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

Я могу обновить данные в листе excel, если сделаю обновление в одном столбце
sql = "Update [AllPrinting$] SET UserName=@UserName and UserNameAR=@UserNameAR WHERE UserID=@UserID";


Но обновление данных до большего столбца не работает следующим образом :

sql = "Update [AllPrinting$] SET UserName=@UserName and UserNameAR=@UserNameAR and Country=@Country and CountryAR=@CountryAR AND Member=@Member AND MemberAR=@MemberAR WHERE UserID=@UserID";


Что я уже пробовал:

когда обновление данных в листе excel до большего количества столбцов не работает почему

1 Ответов

Рейтинг:
0

Suvendu Shekhar Giri

Ваше SQL-утверждение не так корректно, как кажется.
Это должно быть в следующем синтаксисе-

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

Ссылка: Инструкция обновления SQL[^]

Попробуйте что-нибудь вроде-
sql = "Update [AllPrinting$] SET UserName=@UserName, UserNameAR=@UserNameAR , Country=@Country, CountryAR=@CountryAR, Member=@Member, MemberAR=@MemberAR WHERE UserID=@UserID";


Надеюсь, это поможет :)
Пожалуйста, дайте мне знать, если это не сработает.