设为首页 加入收藏

TOP

数据库小工具整合版(二)
2015-11-21 01:44:38 来源: 作者: 【 】 浏览:1
Tags:数据库 工具 整合
erFactory 类的 CreateConnection 方法创建一个 DbConnection (第41行)。
使用 DbConnection 类的 Open 方法打开数据库连接(第44行)。
使用 DbConnection 类的 CreateCommand 方法创建一个 DbCommand (第50行)。
如果要执行的 SQL 语句不是 SELECT 语句,则调用 DbCommand 类的 ExecuteNonQuery 方法执行该 SQL 语句(第54行)。
否则,如果程序主界面中的“结构”复选框被选中,就调用 RunQueryTableStruct 方法获得数据库中的表的结构(第55行)。
否则,就调用 RunQueryTableData 方法获得数据库中的表的数据(第56行)。

第70到76行的 RunQueryTableStruct 方法使用 DbCommand 类的 ExecuteReader 方法(使用 CommandBehavior.KeyInfo 参数)获得一个 DbDataReader (第72行),然后调用 DbDataReader 类的 GetSchemaTable 方法来获得数据库中的表的各列的元数据(第74行)。

第78到85行的 RunQueryTableData 方法使用 DbProviderFactory 类的 CreateDataAdapter 方法创建一个 DbDataAdapter (第80行),然后使用 DbDataAdapter 类的 Fill 方法来填充 DataSet (第83行),最后返回该 DataSet 的 Tables 属性中的第一个 DataTabe 的 DefaultView (第84行)。

该程序中的静态类 Pub 类提供一些辅助的静态方法:


using System;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
 
namespace Skyiv.Ben.DbTools
{
  static class Pub
  {
    public static string GetMessage(Exception
 ex)
    {
      var sb
 = new StringBuilder();
      for (sb.Append("错误:
 ");
 ex != null;
 ex = ex.InnerException)
      {
        sb.AppendFormat("[{0}]:
 ",
 ex.GetType());
        sb.AppendLine(ex.Message);
      }
      return sb.ToString();
    }
 
    public static void AppendLine(this TextBoxBase
 tbx, string fmt,
params object[]
 args)
    {
      tbx.AppendText(string.Format(fmt,
 args) + Environment.NewLine);
    }
 
    public static Version
 GetClientVersion(string name)
    {
      foreach (var a
in AppDomain.CurrentDomain.GetAssemblies())
if (name
 == a.GetName().Name) return a.GetName().Version;
      return null;
    }
  }
}

?


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ADO.NET(OleDb)读取Excel表格时的.. 下一篇tomcat_配置jdbc(小例)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: