程序
一、已有数据库(SQL)表,快速生成对应存储过程的工具。SQLPilot.exe
SQLPilot.exe这个程序是CCF的一个朋友写的,具体请参考http://bbs.et8.net/bbs/showthread.php?t=534183
二、已有数据库表,快速生成列表、基本查询、高级查询、插入新行、删除、编辑asp.net页面的工具Asp.Net Maker
http://www.hkvstore.com/aspnetmaker/
1.数据库操作类
以下是C#代码:
头文件:
using System;using System.Web.UI;using System.Globalization;using System.Data;using System.Data.SqlClient;namespace ns_db{public class c_db: UserControl{
//******************************** // 返回数据库连接字符串 //********************************
public string ewConnStr() { return "Password=******;Persist Security Info=True;User ID=sa;Initial Catalog=******;Data Source=
(Local)"; } // End ewConnStr
//****************************************************** // 返回一个 DataView 根据 Connection String & SQL //******************************************************
public DataView ewDataView(string sConn, string sSQL) { try {
// Create a new Connection Object SqlConnection oConn = new SqlConnection(sConn);
// Create a new DataAdapter using the Connection Object and SQL statement SqlDataAdapter oDa = new SqlDataAdapter(sSQL, oConn);
// Create a new DataSet Object to fill with Data DataSet oDs = new DataSet();
// Fill the DataSet with Data from the DataAdapter Object oDa.Fill(oDs, "ewDataSet"); return oDs.Tables[0].DefaultView; } catch (SqlException oErr) { Session["dberrmsg"] = ewDataErrorMessage(oErr); return null; } } // End ewDataView
//********************************* // 返回一个 DataView for Linking //*********************************
public DataView ewDataViewLink(string sConn, string sTable/*表名*/, string sLnkFld, string sDispFld, string sDispFld2, string sFilterFld, string sOrderBy/*排序列*/, string sOrderType/*排序规则*/, bool bDistinct/*是否剔除重复值*/, string sFilter) { string sSQL; try {
// Construct SQL statement sSQL = "SELECT"; if (bDistinct) { sSQL += " DISTINCT"; } sSQL += " [" + sLnkFld + "], [" + sDispFld + "]"; if (sDispFld2 != "") { sSQL += ", [" + sDispFld2 + "]"; } if (sFilterFld != "") { sSQL += ", [" + sFilterFld + "]"; } sSQL += " FROM [" + sTable + "]"; if (sFilter != "") { sSQL += " WHERE " + sFilter; } if (sOrderBy != "") { sSQL += " ORDER BY [" + sOrderBy + "] " + sOrderType; }
// Create a new Connection Object using the Connection String SqlConnection oConn = new SqlConnection(sConn);
// Create a new DataAdapter using the Connection Object and SQL statement SqlDataAdapter oDa = new SqlDataAdapter(sSQL, oConn);
// Create a new DataSet Object to fill with Data DataSet oDs = new DataSet();
// Fill the DataSet with Data from the DataAdapter Object oDa.Fill(oDs, "ewDataSet");
// Create the TextField and ValueField Columns oDs.Tables[0].Columns.Add("ewValueField",Type.GetType("System.String"),"[" + sLnkFld + "]"); if (sDispFld2 == "") { oDs.Tables[0].Columns.Add("ewTextField",Type.GetType("System.String"),"[" + sDispFld + "]"); } else { oDs.Tables[0].Columns.Add("ewTextField",Type.GetType("System.String"),"[" + sDispFld + "] +
', ' + [" + sDispFld2 + "]"); } return oDs.Tables[0].DefaultView; } catch (SqlException oErr) { Session["dberrmsg"] = ewDataErrorMessage(oErr); return null; } } // End ewDataViewLink
//********************************************************* // 根据 Connection String & SQL 返回 Records 的数量 //*********************************************************
public int ewRecordCount(string sConn, string sTable, string sWhere) { string sSQL; try {
// Construct SQL sSQL = "SELECT COUNT(*) FROM [" + sTable + "]"; if (sWhere != "") { sSQL += " WHERE " + sWhere; }
// Create a new Connection Object using the Connection String SqlConnection oConn = new SqlConnection(sConn);
// Create a new DataAdapter using the Connection Object and SQL statement SqlDataAdapter oDa = new SqlDataAdapter(sSQL, oConn);
// Create a new DataSet object to fill with Data DataSet oDs = new DataSet();
// Fill the DataSet with Data from the DataAdapter Object oDa.Fill(oDs, "ewDataSet"); return Convert.ToInt32(oDs.Tables[0].Rows[0][0]); } catch (SqlException oErr) { Session["dberrmsg"] = ewDataErrorMessage(oErr); return 0; } } // End ewRecordCount
//*********************************************************** // 返回 1-page DataView 根据 Connection String & SQL //***********************************************************
public DataView ewDataViewPage(string sConn, string sSQL, int iCurrentRec, int iPageSize) { try {
// Create a new Connection Object using the Connection String SqlConnection oConn = new SqlConnection(sConn);
// Create a new DataAdapter using the Connection Object and SQL statement SqlDataAdapter oDa = new SqlDataAdapter(sSQL, oConn);
// Create a new DataSet object to fill with Data DataSet oDs = new DataSet();
// Fill the DataSet with Data from the DataAdapter Object oDa.Fill(oDs, iCurrentRec, iPageSize, "ewDataSet"); return oDs.Tables[0].DefaultView; } catch (SqlException oErr) { Session["dberrmsg"] = ewDataErrorMessage(oErr); return null; } } // End ewDataViewPage
//************************************************* // Return a DataReader based on Connection & SQL //*************************************************
public SqlDataReader ewDataReader(SqlConnection oConn, string sSQL) { try {
// Create a DataReader Object SqlDataReader oDr;
// Create a new Command Object using the Connection and SQL statement SqlCommand oCmd = new SqlCommand(sSQL, oConn);
// Execute the SQL statement against the Command to get the DataReader oDr = oCmd.ExecuteReader(); return oDr; } catch (SqlException oErr) { Session["dberrmsg"] = ewDataErrorMessage(oErr); return null; } } // End ewDataReader
//********************************************** // Return Error Message based on Error Object //**********************************************
public string ewDataErrorMessage(SqlException oErr) { string sDbErrMsg; sDbErrMsg = ""; for (int i = 0; i <= oErr.Errors.Count - 1; i++) { sDbErrMsg += "Message: " + oErr.Errors[i].Message + "" + "Line Number: " + oErr.Errors[i].LineNumber + "" + "Source: " + oErr.Errors[i].Source + "" + "Procedure: " + oErr.Errors[i].Procedure + ""; } return sDbErrMsg; } // End ewDataErrorMessage
//*************************** // Return Upload File Name //***************************
public string ewUploadFileName(string sFileName) { string sOutFileName;
// Amend your logic here sOutFileName = sFileName;
// Return computed output file name return sOutFileName; } // End ewUploadFileName
//****************************************************** // Return Formatted Number similar to VB FormatNumber // - IncludeLeadingDigit is not supported //******************************************************
public string ewFormatNumber(object oNo, int iDecPlace, int iUseParen, int iGroupDigits) { NumberFormatInfo oNfi = (NumberFormatInfo) NumberFormatInfo.CurrentInfo.Clone(); oNfi.NumberDecimalDigits = iDecPlace; // NumDigitsAfterDecimal
// IncludeLeadingDigit: not used if (iUseParen == -1) // UseParensForNegativeNumbers: True { oNfi.NumberNegativePattern = 0; } else if (iUseParen == 0) // UseParensForNegativeNumbers: False { oNfi.NumberNegativePattern = 1; } if (iGroupDigits == -1) // GroupDigits: True { oNfi.NumberGroupSeparator = ","; } else if (iGroupDigits == 0) // GroupDigits: False { oNfi.NumberGroupSeparator = ""; }
// Cast for different data types if (oNo is short) // short { return ((short) oNo).ToString("n",oNfi); } else if (oNo is ushort) // ushort { return ((ushort) oNo).ToString("n",oNfi); } else if (oNo is int) // int { return ((int) oNo).ToString("n",oNfi); } else if (oNo is uint) // uint { return ((uint) oNo).ToString("n",oNfi); } else if (oNo is long) // long { return ((long) oNo).ToString("n",oNfi); } else if (oNo is ulong) // ulong { return ((ulong) oNo).ToString("n",oNfi); } else if (oNo is float) // float { return ((float) oNo).ToString("n",oNfi); } else if (oNo is double) // double { return ((double) oNo).ToString("n",oNfi); } else if (oNo is decimal) // decimal { return ((decimal) oNo).ToString("n",oNfi); } else { return ((decimal) oNo).ToString("n",oNfi); } }
//********************************************************** // Return Formatted Currency similar to VB FormatCurrency // - IncludeLeadingDigit is not supported //**********************************************************
public string ewFormatCurrency(object oNo, int iDecPlace, int iUseParen, int iGroupDigits) { NumberFormatInfo oNfi = (NumberFormatInfo) NumberFormatInfo.CurrentInfo.Clone(); oNfi.CurrencyDecimalDigits = iDecPlace; // NumDigitsAfterDecimal
// IncludeLeadingDigit: not used if (iUseParen == -1) // UseParensForNegativeNumbers: True { oNfi.CurrencyNegativePattern = 0; } else if (iUseParen == 0) // UseParensForNegativeNumbers: False { oNfi.CurrencyNegativePattern = 1; } if (iGroupDigits == -1) // GroupDigits: True { oNfi.CurrencyGroupSeparator = ","; } else if (iGroupDigits == 0) // GroupDigits: False { oNfi.CurrencyGroupSeparator = ""; }
// Cast for different data types if (oNo is short) // short { return ((short) oNo).ToString("c",oNfi); } else if (oNo is ushort) // ushort { return ((ushort) oNo).ToString("c",oNfi); } else if (oNo is int) // int { return ((int) oNo).ToString("c",oNfi); } else if (oNo is uint) // uint { return ((uint) oNo).ToString("c",oNfi); } else if (oNo is long) // long { return ((long) oNo).ToString("c",oNfi); } else if (oNo is ulong) // ulong { return ((ulong) oNo).ToString("c",oNfi); } else if (oNo is float) // float { return ((float) oNo).ToString("c",oNfi); } else if (oNo is double) // double { return ((double) oNo).ToString("c",oNfi); } else if (oNo is decimal) // decimal { return ((decimal) oNo).ToString("c",oNfi); } else { return ((decimal) oNo).ToString("c",oNfi); } }
//******************************************************** // Return Formatted Percent similar to VB FormatPercent // - IncludeLeadingDigit is not supported //********************************************************
public string ewFormatPercent(object oNo, int iDecPlace, int iUseParen, int iGroupDigits) { NumberFormatInfo oNfi = (NumberFormatInfo) NumberFormatInfo.CurrentInfo.Clone(); oNfi.CurrencyDecimalDigits = iDecPlace; // NumDigitsAfterDecimal
// IncludeLeadingDigit: not used if (iUseParen == -1) // UseParensForNegativeNumbers: True { oNfi.CurrencyNegativePattern = 0; } else if (iUseParen == 0) // UseParensForNegativeNumbers: False { oNfi.CurrencyNegativePattern = 1; } if (iGroupDigits == -1) // GroupDigits: True { oNfi.CurrencyGroupSeparator = ","; } else if (iGroupDigits == 0) // GroupDigits: False { oNfi.CurrencyGroupSeparator = ""; }
// Cast for different data types if (oNo is short) // short { return ((short) oNo).ToString("p",oNfi); } else if (oNo is ushort) // ushort { return ((ushort) oNo).ToString("p",oNfi); } else if (oNo is int) // int { return ((int) oNo).ToString("p",oNfi); } else if (oNo is uint) // uint { return ((uint) oNo).ToString("p",oNfi); } else if (oNo is long) // long { return ((long) oNo).ToString("p",oNfi); } else if (oNo is ulong) // ulong { return ((ulong) oNo).ToString("p",oNfi); } else if (oNo is float) // float { return ((float) oNo).ToString("p",oNfi); } else if (oNo is double) // double { return ((double) oNo).ToString("p",oNfi); } else if (oNo is decimal) // decimal { return ((decimal) oNo).ToString("p",oNfi); } else { return ((decimal) oNo).ToString("p",oNfi); } }} // End Class} // End NameSpace