SQLException 未处理.在网格视图中查看 Excel 文件

本文关键字:Excel 文件 视图 未处理 网格 SQLException | 更新日期: 2023-09-27 18:35:30

我一直在做一个 C# 项目,在那里我浏览并查看 Excel 文件到网格视图中。但是,有一个我不明白的错误消息。有人可以帮我解决这个问题吗?

这是我使用的代码:

private void buttonUpload_Click(object sender, EventArgs e)
{
    string connectionString = String.Format(@"Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text);
    string query = String.Format("select * from [{0}$]", "Sheet1");
    SqlDataAdapter dataAdapter = new SqlDataAdapter(query, connectionString);
    DataSet dataSet = new DataSet();
    dataAdapter.Fill(dataSet);
    dataGridView1.DataSource = dataSet.Tables[0];
}

这是错误消息:

"A network-related or instance-specific error occurred while establishing 
a connection to SQL Server. The server was not found or was not accessible. 
Verify that the instance name is correct and that SQL Server is configured 
to allow remote connections. 
(provider: SQL Network Interfaces, 
error: 26 - Error Locating Server/Instance Specified)."

SQLException 未处理.在网格视图中查看 Excel 文件

您正在尝试通过SqlConnection连接到 Excel。

若要连接到 Excel,请使用 OleDBConnection

private void buttonUpload_Click(object sender, EventArgs e)
{
   string connectionString = String.Format(@"Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text)
   var objConn = new OleDbConnection(connectionString);
   objConn.Open(); 
   OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
   OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); 
   objAdapter1.SelectCommand = objCmdSelect; 
   DataSet objDataset1 = new DataSet(); 
   objAdapter1.Fill(objDataset1); 
   objConn.Close(); 
}

不能将 SqlConnectionSqlDataAdapter 用于 ODBC 或 JET 连接。使用 OleDbConnectionOleDbDataAdapter

还请确保及时处理连接和资源。此处建议使用 using 语句。

private void buttonUpload_Click(object sender, EventArgs e)
{
   string connectionString = String.Format(@"Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text);
   DataSet objDataset1 = new DataSet();
   using (OleDbConnection objConn = new OleDbConnection(connectionString))
   {
       objConn.Open(); 
       using (OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn))
       using (OleDbDataAdapter objAdapter1 = new OleDbDataAdapter())
       {
           objAdapter1.SelectCommand = objCmdSelect;    
           objAdapter1.Fill(objDataset1); 
       }
   } 
}