string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Inetpub\\wwwroot\\contacts.xls;"+
"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [ContactList$]", strConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet);
DataGrid1.DataSource = myDataSet.Tables[0];
DataGrid1.DataBind();使用上述代码后发现某些列的数字值会丢失,变为NULL
请教如何解决此问题?
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Inetpub\\wwwroot\\contacts.xls;"+
"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [ContactList$]", strConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet);
DataGrid1.DataSource = myDataSet.Tables[0];
DataGrid1.DataBind();使用上述代码后发现某些列的数字值会丢失,变为NULL
请教如何解决此问题?
http://www.codeproject.com/csharp/excel_using_oledb.asp
请教如何解决此问题?如果变为null,有可能你的数据格式有问题。
那应该转换成什么格式的呢?
这个EXCEL里所有格式都是文本型,我把他们全转换为数字或常规都不行。
而且我新输入了一些数字格式的值,也显示不出来.
用这个连接试试,注意后面的两个参数
/// 获取Excel文件指定的表的数据
/// </summary>
/// <param name="ExcelPath">Excel文件路径</param>
/// <param name="ExcelTableName">表名</param>
/// <returns>DataSet</returns>
public static DataSet ExcelGetData(string ExcelPath,string ExcelTableName)
{
string oleConn="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + ExcelPath +";Extended Properties=Excel 8.0" ;
DataSet ds = new DataSet();
try
{
System.Data.OleDb.OleDbCommand oleComm = new OleDbCommand();
System.Data.OleDb.OleDbDataAdapter oleDa =new OleDbDataAdapter("select * from ["+ExcelTableName+"$]",oleConn); oleDa.Fill(ds,ExcelTableName);
}
catch(System.Exception)
{
HOH.Common.Common.strMessage = "程序发生错误!";
}
return ds;
}
#endregion