新手请教一个C#调数据库的问题

问题描述

OleDbConnectionoleDBConn=null;OleDbDataAdapterda=null;DataTablem_tableName=newDataTable();;DataSetds=newDataSet();oleDBConn=newOleDbConnection(oleDBConnString);oleDBConn.Open();m_tableName=oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);这段代码的oleDBConn的state为close。这是什么问题呢?我装的WIN8的VS2013

解决方案

本帖最后由 noliner 于 2015-01-10 23:28:16 编辑
解决方案二:
断点运行到那一步呢
解决方案三:
Provider指定的数据驱动版本太低吧才4.0后面的excel是8.0。
解决方案四:
引用1楼moonwrite的回复:

断点运行到那一步呢

断点运行到这步:oleDBConn=newOleDbConnection(oleDBConnString);
解决方案五:
引用2楼smthgdin的回复:

Provider指定的数据驱动版本太低吧才4.0后面的excel是8.0。

完整代码是这样的:publicDataTableLendInDT(stringstrFilePath){if(strFilePath==null){thrownewArgumentNullException("filenamestringisnull!");}if(strFilePath.Length==0){thrownewArgumentException("filenamestringisempty!");}stringoleDBConnString=String.Empty;oleDBConnString="Provider=Microsoft.Jet.OLEDB.4.0;";oleDBConnString+="DataSource=";oleDBConnString+=strFilePath;oleDBConnString+=";ExtendedProperties=Excel8.0;";OleDbConnectionoleDBConn=null;OleDbDataAdapterda=null;DataTablem_tableName=newDataTable();;DataSetds=newDataSet();oleDBConn=newOleDbConnection(oleDBConnString);oleDBConn.Open();m_tableName=oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);if(m_tableName!=null&&m_tableName.Rows.Count>0){m_tableName.TableName=m_tableName.Rows[0]["TABLE_NAME"].ToString();}stringsqlMaster="SELECT*FROM["+m_tableName+"]";da=newOleDbDataAdapter(sqlMaster,oleDBConn);try{da.Fill(ds,"tb");}catch(Exceptionex){thrownewException(ex.ToString());}finally{oleDBConn.Close();oleDBConn.Dispose();da.Dispose();}DataTableresult=ds.Tables["tb"];returnresult;}
解决方案六:
ServerVersion“oleDBConn.ServerVersion”引发了“System.InvalidOperationException”类型的异常是什么原因啊?
解决方案七:
Microsoft.Jet.OLEDB.4.0、ExtendedProperties=Excel8.0,对应excel2003如果你机器装的是office2003以上版本,相应的调整上面两个值。
解决方案八:
你好,我前段时间也遇到过类似的问题。后来使用了aspose.cells.dlltry{ds=Report.GetDataTableFromExecl(phisicalFilePath);}catch(Exceptionex){ShowMessage(Page,"上传失败,请稍后重试!"+ex.Message);return;}publicstaticDataSetGetDataTableFromExecl(stringfilePath){vardsExcel=newDataSet();varwkBook=newWorkbook(filePath);//只取第一个sheetvarwkSheet=wkBook.Worksheets[0];vardtTemp=newDataTable();for(varx=0;x<wkSheet.Cells.MaxDataRow+1;x++){DataRowdRow=null;for(vary=0;y<wkSheet.Cells.MaxDataColumn+1;y++){varvalue=wkSheet.Cells[x,y].StringValue.Trim();//如果是第一行,则当作表头if(x==0){//设置表头vardCol=newDataColumn(value);dtTemp.Columns.Add(dCol);}//非第一行,则为数据行else{//每次循环到第一列时,实例DataRowif(y==0){dRow=dtTemp.NewRow();}//给第Y列赋值if(string.IsNullOrEmpty(value)){dRow[y]=null;}else{dRow[y]=value;}}}if(dRow!=null){dtTemp.Rows.Add(dRow);}}dsExcel.Tables.Add(dtTemp);returndsExcel;}

时间: 2024-09-15 15:04:07

新手请教一个C#调数据库的问题的相关文章

新手请教一个c的问题,关于指针赋初始值

问题描述 新手请教一个c的问题,关于指针赋初始值 #includeint main(){ char *p=NULL; scanf(""%s""p); printf(""%s""p); return 0;}这段代码我在ios的终端下运行就提示Segmentation fault:11但是不给p赋初值的话..改称char *p;反而好使了..为什么...请教别人说是编译器的问题.能不能稍微详细的说一下为什么.. 解决方案 要先弄清

新手请教一个问题,AWS的 ec2主机 用 sftp的时候 无法上传文件是什么原因,谁知道?

问题描述 新手请教一个问题,AWS的ec2主机用sftp的时候无法上传文件是什么原因,谁知道?

新手请教一个&amp;amp;lt;s:iterator /&amp;amp;gt;迭代调用js方法的问题

问题描述 小弟最近苦于struts2循环调用js的问题 前来请教...//这是源码<s:iterator value="courses" var="c"><div class="label" style="width: 200;"> <input id="CourseTime" value="<s:property value='#c.CourseTime'/&

新手请教一个没面子问题,VB.NET函数嵌套定义问题.

问题描述 我在页面的代码隐藏页里定义一个函数,函数里面要调用几个子函数,由于一些参数的特殊性,这几个子函数只能写在总函数里,可是又担心VB.NET不支持函数嵌套定义.我由于实在是太菜了,单位又节约成本不组织我们培训,现在还在艰难地摸索中.请教各位朋友们关于VB.NET函数嵌套定义问题,希望得到源代码,谢谢!! 解决方案 解决方案二:支持public类型函数名(参数){public类型子函数名(参数){}public类型子函数名(参数){}}我用的是C#,你参考一下,是可以的解决方案三:不知你的参

请教一个xml插入数据库的问题

问题描述 是这样,我从服务器获取xml(一条一条的)以前是转换对象插数据库,我现在转换字符串直接插入数据库(用一个存储过程),每个xml比较大,上百字段吧,我是在代码里把所以xml都获取下来放到list里呢?(一次请求获取一个xml,基本上要循环上千次请求)还是获取一条就执行一次存储过程呢?或者还有没有什么方法使得效率更高一些呢,效率遇到瓶颈了,求赐教 解决方案 解决方案二:一次取肯定是最快的,但会有io效率之类的问题,所以你还是以分页的思路一批批取吧解决方案三:可是我把几个xml拼一起又太大了

新手请教一个小问题,关于SocketInputStream

问题描述 新手求指教,在<深入剖析Tomcat>第三章介绍连接器部分提到了这样一个类:SocketInputStream,从网上找结果说是org.apache.catalina.connector.http.SocketInputStream下的,可这个包我怎么也导不进去,请问大侠这个类到底怎么引进项目中,谢谢了! 解决方案 解决方案二:eclipse么?右键选择你的项目-->BuildPath-->configurebuildpath-->librarys-->add

java-新手请教一个JAVA问题,急用。

问题描述 新手请教一个JAVA问题,急用. 我用JAVA在一个包中写了MultiThreadMatrix.java和Jiemian.java.MultiThreadMatrix.java是一个并行矩阵计算程序,怎么让Jiemian.java中的一个按钮b3,点击b3执行MultiThreadMatrix.java,并将结果输出在Jiemian.java的文本框中.图中RUN就是b3 MultiThreadMatrix.java的打印的结果是,先让你输入想建立的线程个数,然后输出每个线程计算哪一行

请教一个ToolkitScriptManager不能使用timer控件的问题

问题描述 新手请教一个问题:我使用的vs2010,我的目的是使用AJAXControlToolkit里面的tabcontainer组件,建立ajax的tab选项卡,然后选项卡上面有个label,设定个timer,定时刷新这个label,但是发现要想使用AJAXControlToolkit,就得引用toolkitscriptmanager,但是如果使用timer控件,就得引用ScriptManager,但是2个都引用就会报错说只能引用一个ScriptManager,请问这个问题怎么好解决呢?单独引

oracle-新手请教一个sql查询问题,在线等,谢谢

问题描述 新手请教一个sql查询问题,在线等,谢谢 一张激活表TL_CSU_ACTIVATE_LOG: 一张用户表TV_CSU_USER 现在要查询2014-12to2015-12每月注册的不同类型(T,B,M,D)用户数,如下图: sql 应该怎么写 解决方案 参考Oracle行列转换 因为你的类型是固定的,所以直接查询,如果你的类型不固定,可以参考上面的链接. SELECT TT.Month ,SUM(CASE WHEN TT.TYPE = 'B' THEN Count ELSE 0 END