Member 10549697 Ответов: 1

Sheet1$ не существует ошибка, возникающая при записи в файл excel с помощью oledb


private void btn_submit_Click(object sender, EventArgs e)
       {
           try
           {

               string name = textBox1.Text;
               string filepath="D://"+name;

               System.Data.OleDb.OleDbConnection MyConnection;
               System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
               string sql = null;
               MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filepath+".xls;Extended Properties=Excel 8.0;");
               MyConnection.Open();
               myCommand.Connection = MyConnection;
               sql = "Insert into [Sheet1$] (name,email) values('"+textBox1.Text+"','"+textBox2.Text+"')";
               myCommand.CommandText = sql;
               myCommand.ExecuteNonQuery();
               MyConnection.Close();
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.ToString());
           }
       }


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

я пытаюсь записать данные в файл excel, но он выдает мне ошибку, так как sheet1$ не существует.Я не знаю, что делать, пожалуйста, помогите

1 Ответов

Рейтинг:
10

OriginalGriff

Проверьте свой файл excel: убедитесь, что вы не переименовали лист.
И не делайте этого так: никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы - SQL-инъекция не ограничивается только базами данных!


Member 10549697

еще один вопрос: Могу ли я создать таблицу для определения строк и столбцов так же, как этот запрос insert?Пожалуйста, помогите мне

OriginalGriff

Это отдельный вопрос - откройте новый и подробно объясните, что вы пытаетесь сделать.