Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 阅读excel表格时出现问题_C#_Ado.net_File Upload - Fatal编程技术网

C# 阅读excel表格时出现问题

C# 阅读excel表格时出现问题,c#,ado.net,file-upload,C#,Ado.net,File Upload,在这里,仅当项目文件夹中存在excel工作表时,程序才起作用。如果对excel工作表进行了任何更改,然后再次运行该程序,则只提取以前存在的行,而不提取以后添加的行。请帮助我…..提前感谢….您好,请发布完整的代码,或者您可以使用以下方法将完整的工作表导入Datatable对象,并检索Datatable所需的列和行 SqlDataReader reader; string r=""; if ((FileUpload1.PostedFile != null)&&(FileUpload

在这里,仅当项目文件夹中存在excel工作表时,程序才起作用。如果对excel工作表进行了任何更改,然后再次运行该程序,则只提取以前存在的行,而不提取以后添加的行。请帮助我…..提前感谢….

您好,请发布完整的代码,或者您可以使用以下方法将完整的工作表导入Datatable对象,并检索Datatable所需的列和行

SqlDataReader reader;
string r="";
if ((FileUpload1.PostedFile != null)&&(FileUpload1.PostedFile.ContentLength > 0))
{
    r = System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName);
}
OleDbConnection oconn =
    new OleDbConnection
    (@"Provider=Microsoft.Jet.OLEDB.4.0;"
    + @"Data Source="+r+";"
    + @"Extended Properties=""Excel 8.0;HDR=Yes;""");
oconn.Open();
OleDbCommand dbcom = new OleDbCommand("SELECT * FROM [Sheet1$]", oconn);
OleDbDataReader dbreader = dbcom.ExecuteReader();
int rni = dbreader.GetOrdinal ("RollNo");
int mki = dbreader.GetOrdinal ("marks");
static public DataTable ExecuteOleDataTable(string sql, string oledbconnectionstring)
   {
       using (OleDbCommand command = new OleDbCommand())
       {
           command.CommandType = CommandType.Text;

           OleDbConnection oledbconnection = new OleDbConnection(oledbconnectionstring);
           command.Connection = new OleDbConnection(oledbconnectionstring); ;
           command.CommandText = sql;

           if (oledbconnection.State == System.Data.ConnectionState.Open)
               oledbconnection.Close();
           oledbconnection.Open();
           OleDbDataAdapter sda = new OleDbDataAdapter(command);
           DataTable datatable = new DataTable();
           sda.Fill(datatable);
           oledbconnection.Close();
           return datatable;
       }
   }