适用于任何数据库的数据库查看器和更新器






4.29/5 (12投票s)
2006年7月18日
1分钟阅读

100079

2149
查看和更新任何数据库表和元数据。包含示例数据库。
MyDbViewer
引言
这是一个完全动态的数据库查看器。它可以用来
- 查看任何数据库
- 导航到不同的表
- 通过简单地在字段中输入值来选择数据
- 执行表数据的更新
- 以网格形式显示数据
- 以单条记录的形式显示数据
- 查看元数据
GridView
DbViewer 的用途
此查看器的目的是为了能够直接操作表,而无需使用 SQL Server 或 MS Access。它主要是一个开发人员工具,并非最终用户工具,尽管可以针对用户进行定制。
DbViewer 的用途
- 快速操作表
- 内容管理
使用代码
解压缩并在 VS2005 中以网站方式打开。从 default.htm 页面运行代码。
(default.htm 是一个虚拟页面,它加载 _Chapter13_databaseviewer 文件夹中的相关 aspx 页面。)
数据库类 DbData
应用程序的所有数据库逻辑都已放置在数据库类 DbData
中。
代码片段
表中的元数据信息不是通过读取表获得的,而是通过使用 GetSchema
命令获得的。请参阅 DbData
类中的函数,了解如何检索列。
private string dbFieldsSQL(string astrTable, string astrField, bool abReadOnly)
{
DataTable oDataTable, oIndexTable;
SqlConnection oConn;
string strRows;
try
{
oConn = dbSqlConnection();
oConn.Open();
oDataTable = oConn.GetSchema("Columns");
oIndexTable = oConn.GetSchema("IndexColumns");
strRows = dbFields(oDataTable, oIndexTable,
astrTable, astrField, abReadOnly);
oConn.Close();
}
catch (Exception err)
{
strRows = err.Message;
}
return strRows;
}
private string dbFields(DataTable oDataTable, DataTable oIndexTable,
string astrTable, string astrField, bool abReadOnly)
{
int intNo, intMax;
string strCol, strRows;
string[] arrFields = new string[1000];
strRows = "\n\n";
strRows += dbStyle();
// SORT BY ORDINAL_POSITION
intMax = 0;
strRows += "<TABLE BORDER=0 CELLSPACING=1>\n";
foreach (DataRow oRow in oDataTable.Rows)
{
if (astrTable == oRow["TABLE_NAME"].ToString())
{
if (astrField == "" || astrField.ToLower().Trim()
== oRow["COLUMN_NAME"].ToString().ToLower().Trim())
{
// intNo = (int) oRow["ORDINAL_POSITION"];
intNo = Convert.ToInt32(oRow["ORDINAL_POSITION"]);
intMax = (intNo > intMax) ? intNo : intMax;
strCol = oRow["COLUMN_NAME"].ToString();
arrFields[intNo] = "<TR><TD CLASS=Smalls " +
"ALIGN='left'>" + strCol +
"<BR /><INPUT NAME=INPUT_" +
strCol + " ###" + strCol + "### ";
// READONLY if Key/Index Field
if (abReadOnly)
{
foreach (DataRow oIndexRow in oIndexTable.Rows)
{
if (astrTable == oIndexRow["table_name"].ToString() &&
oRow["COLUMN_NAME"].ToString() ==
oIndexRow["column_name"].ToString())
{
arrFields[intNo] +=
" READONLY STYLE='background: #C0C0C0;' ";
break;
}
}
}
arrFields[intNo] += "></TD></TR>\n";
}
}
}
for (intNo=1;intNo<intMax+1;intNo++)
{strRows += (arrFields[intNo] != "") ? arrFields[intNo] : "";}
strRows += "</TABLE>\n";
return strRows;
}
历史
- 2006 年 7 月 25 日 - 更新下载