社区
Access
帖子详情
conn.GetOleDbSchemaTable 这个方法为什么不能连续用两次? 第一次正确,第二次不能返回表结构
lys1706228
2008-12-09 11:06:03
foreach (string var in strTableName)
{
DataTable shemaColumnsInfo= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, var, null });
}
...全文
155
14
打赏
收藏
conn.GetOleDbSchemaTable 这个方法为什么不能连续用两次? 第一次正确,第二次不能返回表结构
foreach (string var in strTableName) { DataTable shemaColumnsInfo= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, var, null }); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gsmlove
2008-12-18
打赏
举报
回复
mark
WWWWA
2008-12-09
打赏
举报
回复
应该是程序问题,检查一下代码
wwwwb
2008-12-09
打赏
举报
回复
呵呵,程序问题吧,执行完后,关闭连接没有?用查询MYSQL系统表方法不行?
用ADO的OPENSCHEMA方法试试
lys1706228
2008-12-09
打赏
举报
回复
[Quote=引用 11 楼 WWWWA 的回复:]
//变量时,第一次循环没问题,第二次就是空表 :
一步一步地跟踪,连接打开没有、表名传进去函没有、
[/Quote]
肯定是传进去了,返回的有表头(字段),只是Row.count为0
WWWWA
2008-12-09
打赏
举报
回复
//变量时,第一次循环没问题,第二次就是空表 :
一步一步地跟踪,连接打开没有、表名传进去函没有、
lys1706228
2008-12-09
打赏
举报
回复
conn.Open();
foreach (string
var
in strTableName)
{
// 常量时没有问题
DataTable shemaColumnsInfo3 = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null,
"aa",
null });
DataTable shemaColumnsInfo4 = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null,
"bb",
null });
//变量时,第一次循环没问题,第二次就是空表
DataTable shemaColumnsInfo1 = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null,
var,
null });
DataTable shemaColumnsInfo2 = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null,
var,
null });
}
conn.Close();
WWWWA
2008-12-09
打赏
举报
回复
用两个表名试试,因为conn在你的代码中关闭了(conn.Close(); ),第二次调用是否要重新打开
lys1706228
2008-12-09
打赏
举报
回复
[Quote=引用 7 楼 WWWWA 的回复:]
变量、对象(shemaColumnsInfo)是否要释放?
[/Quote]
----------
public DataTable GetColumnsInfo(string strTableName)
{
try
{
conn.Open();
return conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, strTableName, null });
}
catch
{
return null;
}
finally
{
conn.Close();
}
}
改成这样了,
一下调用方式
strTableNames[0]=“aa”
strTableNames[1]=“bb”
foreach (string strTableName in strTableNames)
{
if (strTableName.Length == 0)
{
return null;
}
DateAccess Dacc = new DateAccess(conn, strPath);
dt = Dacc.GetColumnsInfo(strTableName);
}
第二次返回的dt。rows。count还是为0
----------------------------------------------------------------
如果只要求返回单表结构
strTableNames[0]=“aa”
strTableNames[0]=“bb”
都可以正常
很郁闷!
WWWWA
2008-12-09
打赏
举报
回复
变量、对象(shemaColumnsInfo)是否要释放?
lys1706228
2008-12-09
打赏
举报
回复
[Quote=引用 5 楼 WWWWA 的回复:]
循环调用的代码?
[/Quote]
-------------------
public DataTable GetColumnsInfo(string strTableName)
{
DataTable shemaColumnsInfo=new DataTable();
try
{
conn.Open();
shemaColumnsInfo = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, strTableName,null });
}
catch
{
return null;
}
finally
{
conn.Close();
}
return shemaColumnsInfo;
}
这个方法有什么问题吗?
WWWWA
2008-12-09
打赏
举报
回复
循环调用的代码?
lys1706228
2008-12-09
打赏
举报
回复
单个调用GetColumnsInfo 方法没问题,循环调用第二次,就范围0行,
lys1706228
2008-12-09
打赏
举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
呵呵,程序问题吧,执行完后,关闭连接没有?用查询MYSQL系统表方法不行?
用ADO的OPENSCHEMA方法试试
[/Quote]
-----------
public DataTable GetColumnsInfo(string strTableName)
{
DataTable shemaColumnsInfo=new DataTable();
try
{
conn.Open();
shemaColumnsInfo = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, strTableName,null });
}
catch
{
return null;
}
finally
{
conn.Close();
}
return shemaColumnsInfo;
}
ADO.NET连接池【整理:来源自网上】
连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建...
ado.net 连接池性能
连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建...
ADO.NET数据库连接池性能
连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建...
C#做小工具的时候碰到的问题
MySqlCommand cmd = new MySqlCommand(cmdString,cnn); cnn是MySql
Conn
ection类型的参数,
不能
丢
将Excel数据快速大批量导入数据库的代码
两种途径将数据从EXCEL中导入到SQL SERVER。 一、 在程序中,用ADO.NET。代码 如下: //连接串 string str
Conn
= "Provider=Microsoft.Jet.
OLEDB
.4.0;Extended Properties=Excel 8.0;Data Source=" + ...
Access
7,712
社区成员
28,796
社区内容
发帖
与我相关
我的任务
Access
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
复制链接
扫一扫
分享
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章