/*
背景知识 SQL Server 2000
************************************************************************************************
系统表 sys.systypes (Transact-SQL) 描述系统定义的类型信息
------------------------------------------------------------------------------------------------
列名 数据类型 说明
name sysname 数据类型名称。
xtype tinyint 物理存储类型。
status tinyint 仅供内部使用。
xusertype smallint 扩展用户类型。如果用户数和角色数超过 32,767,则会溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。
length smallint 数据类型的物理长度。
xprec tinyint 服务器使用的内部精度。不在查询中使用。
xscale tinyint 服务器使用的内部小数位数。不在查询中使用。
tdefault int 特定存储过程的 ID,此存储过程包含对该数据类型的完整性检查功能。
domain int 特定存储过程的 ID,此存储过程包含对该数据类型的完整性检查功能。
uid smallint 数据类型创建者的用户 ID。如果用户数和角色数超过 32,767,则会溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。
reserved smallint 仅供内部使用。
usertype smallint 用户类型 ID。如果数据类型数超过 32,767,则溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。
variable bit 可变长度数据类型。 1 = True 0 = False
allownulls bit 指示此数据类型的默认为空性。如果使用 CREATE TABLE 或 ALTER TABLE 指定了为空性,则覆盖此默认值。
type tinyint 物理存储数据类型。
printfmt varchar(255) 保留。
prec smallint 此数据类型的精度级别。 -1 = xml 或大值类型。
scale tinyint 此数据类型根据精度确定的小数位数。 NULL = 数据类型不是数值。
collation sysname 如果使用的是字符,则 collation 为当前数据库的排序规则;否则为 NULL。
************************************************************************************************
系统表 sys.syscolumns (Transact-SQL) 为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。
------------------------------------------------------------------------------------------------
列名 数据类型 说明
name sysname 列名或过程参数的名称。
id int 此列所属表的对象 ID,或者与此参数关联的存储过程的 ID。
xtype tinyint sys.types 中的物理存储类型。
typestat tinyint 仅供内部使用。
xusertype smallint 扩展的用户定义数据类型的 ID。如果数据类型数超过 32767,则会发生溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。
length smallint sys.types 中的最大物理存储长度。
xprec tinyint 仅供内部使用。
xscale tinyint 仅供内部使用。
colid smallint 列 ID 或参数 ID。
xoffset smallint 仅供内部使用。
bitpos tinyint 仅供内部使用。
reserved tinyint 仅供内部使用。
colstat smallint 仅供内部使用。
cdefault int 此列的默认值的 ID。
domain int 此列的规则或 CHECK 约束的 ID。
number smallint 过程分组时的子过程号。0 = 非过程项
colorder smallint 仅供内部使用。
autoval varbinary(8000) 仅供内部使用。
offset smallint 此列所在行的偏移量。
collationid int 列的排序规则的 ID。对于非字符列,此值为 NULL。
status tinyint 用于说明列或参数的属性的位图:
0x08 = 列允许空值。
0x10 = 添加 varchar 或 varbinary 列时,执行 ANSI 填充。保留 varchar 列的尾随空格以及 varbinary 列的尾随零。
0x40 = 参数为 OUTPUT 参数。
0x80 = 列为标识列。
type tinyint sys.types 中的物理存储类型。
usertype smallint sys.types 中的用户定义数据类型的 ID。如果数据类型数超过 32767,则会发生溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。
printfmt varchar(255) 仅供内部使用。
prec smallint 此列的精度级别。-1 = xml 或大值类型。
scale int 此列的小数位数。NULL = 数据类型不是数值。
iscomputed int 指示列是否为计算列的标志: 0 = 非计算列。 1 = 计算列。
isoutparam int 指示过程参数是否为输出参数: 1 = True 0 = False
isnullable int 指示列是否允许空值: 1 = True 0 = False
collation sysname 列的排序规则的名称。如果不是基于字符的列,则为 NULL。
************************************************************************************************
系统表 sys.sysobjects (Transact-SQL) 在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。
----------------------------------------------------------------------------------------------------------------------
列名 数据类型 说明
name sysname 对象名称
id int 对象标识号
xtype char(2) 对象类型。可以是下列对象类型中的一种:
C = CHECK 约束
D = 默认设置或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内联表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型为 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型为 K)
V = 视图
X = 扩展存储过程
uid smallint 所有者对象的用户 ID。如果用户数和角色数超过 32,767,则会溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。
info smallint 保留为仅供内部使用。
status int 保留为仅供内部使用。
base_schema_ver int 保留为仅供内部使用。
replinfo int 为复制保留。
parent_obj int 父对象的对象标识号。例如,表 ID(如果父对象是触发器或约束)。
crdate datetime 对象的创建日期。
ftcatid smallint 注册为使用全文索引的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。
schema_ver int 在每次更改表的架构时都会增加的版本号。始终返回 0
stats_schema_ver int 保留为仅供内部使用。
type char(2) 对象类型。可以是下列值之一:
C = CHECK 约束
D = 默认设置或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内联表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
userstat smallint 保留
sysstat smallint 内部状态信息。
indexdel smallint 保留
refdate datetime 保留供将来使用。
version int 保留供将来使用。
deltrig int 保留
instrig int 保留
updtrig int 保留
seltrig int 保留
category int 用于发布、约束和标识。
cache int 保留
************************************************************************************************
*/
using System;
using DataTools;
using System.Data;
namespace TestSQL
{
/// <summary>
/// Procedure 的摘要说明。
/// 存储过程处理
/// </summary>
public class Procedure
{
DataTools.cDB db;
public string strCallProcedureFunctions ="";
public bool m_bWebService;//[WebMethod]
public string m_strOutFileName="";
public Procedure(string strConn)
{
//
// TODO: 在此处添加构造函数逻辑
//
db = new DataTools.cDB(strConn);
if(m_strOutFileName.Length < 1)
{
m_strOutFileName = "CProcedure";
}
m_bWebService = false;
}
/// <summary>
/// 导出所有存储过程
/// </summary>
/// <returns></returns>
public int WriteProcedures()
{
try
{
string strFormat;
string strSQL;
string strProcedureName;
strCallProcedureFunctions = "";
strSQL = "SELECT * FROM sysobjects WHERE (xtype = 'P') ORDER BY name";
System.Data.DataSet ds = db.DIRunSQLretDs(strSQL);
if(ds == null)
{
return 1;
}
if(ds.Tables.Count <1)
{
return 2;
}
Log.WriteLogLine("输出存储过程:");
Log.WriteLine(m_strOutFileName," ");
Log.WriteLine(m_strOutFileName,"// Create by jim 2006-11-30 ");
Log.WriteLine(m_strOutFileName,"// Email:gopojim@163.com ");
Log.WriteLine(m_strOutFileName,"// QQ:277403754");
Log.WriteLine(m_strOutFileName,"// Create DateTime:"+System.DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
Log.WriteLine(m_strOutFileName," ");
Log.WriteLine(m_strOutFileName,"using System;");
Log.WriteLine(m_strOutFileName,"using System.Data;");
Log.WriteLine(m_strOutFileName,"using System.Data.SqlClient ;");
Log.WriteLine(m_strOutFileName,"");
Log.WriteLine(m_strOutFileName,"namespace MySQL.Procedure");
Log.WriteLine(m_strOutFileName,"{");
WirteProvider(m_strOutFileName);//Wirete Provider Class
int n=0;
foreach(System.Data.DataRow rd in ds.Tables[0].Rows)
{
strProcedureName = rd["name"].ToString();
WriteProcedureClass(strProcedureName);
n++;
Log.WriteLogLine(strProcedureName);
if(n > 5)
{
//break;
}
}
//strCallProcedureFunctions
Log.WriteLine(m_strOutFileName," public class CallProcedureFunctions");
Log.WriteLine(m_strOutFileName," {");
Log.WriteLine(m_strOutFileName," public string m_strConnnectString;//m_strConnnectString = /"Server=(local); DataBase=jim; user id=test; pwd=test; Connect Timeout=30;/"/n");
Log.WriteLine(m_strOutFileName,strCallProcedureFunctions);
Log.WriteLine(m_strOutFileName," }");
Log.WriteLine(m_strOutFileName,"}");
strFormat = string.Format("输出{0}个存储过程。",n);
Log.WriteLogLine(strFormat);
}
catch(System.Exception e)
{
Log.WriteLogLine(e);
}
return 0;
}
/// <summary>
/// SELECT c.colid AS id, c.name AS name, t.name AS type, c.length AS length
/// FROM syscolumns c INNER JOIN
/// sysobjects o ON c.id = o.id INNER JOIN
/// systypes t ON c.xtype = t.xtype
/// WHERE (o.xtype = 'P') AND (o.name = 'Phone_Insert')
/// ORDER BY c.id
/// </summary>
/// <param name="strProcedureName"></param>
/// <returns></returns>
public int WriteProcedureClass(string strProcedureName)
{
string strFormat;
string strSQL;
string str;
string strName,strType,strLength;
string strCallProcedureFunctionHead;
string strCallProcedureFunctionBoy;
// public static DataSet Agent_Select_charge(DateTime _time, int _agentid)
// {
// SqlConnection connection1 = new SqlConnection(Config.ConnnectString);
// SqlCommand command = new SqlCommand("Agent_Select_charge", connection1);
// command.CommandType = CommandType.StoredProcedure;
// command.Parameters.Add("@Time", SqlDbType.DateTime).Value = _time;
// command.Parameters.Add("@AgentID", SqlDbType.Int).Value = _agentid;
// return DataProvider.GetDataSet(command);
// }
strCallProcedureFunctionHead = " public DataSet Call_"+strProcedureName+"(";
strCallProcedureFunctionBoy = " SqlConnection connection = new SqlConnection();/n"+
" connection.ConnectionString = m_strConnnectString;/n"+
" SqlCommand command = new SqlCommand(/""+strProcedureName+"/", connection );/n"+
" command.CommandType = CommandType.StoredProcedure;/n";
System.Data.DataSet ds;
strSQL = "sp_helptext " +strProcedureName;
ds = db.DIRunSQLretDs(strSQL);
if(ds == null)
{
return 1;
}
if(ds.Tables.Count <1)
{
return 2;
}
Log.WriteLine(m_strOutFileName,"");
Log.WriteLine(m_strOutFileName," // ProcedureName:"+strProcedureName);
//Log.WriteLine(m_strOutFileName," /*");
foreach(System.Data.DataRow rd in ds.Tables[0].Rows)
{
str = rd["Text"].ToString();
str = str.Replace("/r/n","");
str = str.Replace("/n","");
str = " // "+str;
Log.WriteLine(m_strOutFileName,str);
}
//Log.WriteLine(m_strOutFileName," */");
strFormat = "SELECT c.colid AS id, c.name AS name, t.name AS type, c.length AS length "+
"FROM syscolumns c INNER JOIN "+
"sysobjects o ON c.id = o.id INNER JOIN "+
"systypes t ON c.xtype = t.xtype "+
"WHERE (o.xtype = 'P') AND (o.name = '{0}') "+
"ORDER BY c.id";
strSQL = string.Format(strFormat,strProcedureName);
ds = db.DIRunSQLretDs(strSQL);
if(ds == null)
{
return 1;
}
if(ds.Tables.Count <1)
{
return 2;
}
strFormat= " /// {0} 的摘要说明。";
str = string.Format(strFormat,strProcedureName);
Log.WriteLine(m_strOutFileName," /// <summary>");
Log.WriteLine(m_strOutFileName,str);
Log.WriteLine(m_strOutFileName," /// </summary>");
Log.WriteLine(m_strOutFileName," public class C"+strProcedureName);
Log.WriteLine(m_strOutFileName," {");
strFormat= " public C{0}()";
str = string.Format(strFormat,strProcedureName);
Log.WriteLine(m_strOutFileName,str);
Log.WriteLine(m_strOutFileName," {");
Log.WriteLine(m_strOutFileName," //");
Log.WriteLine(m_strOutFileName," // TODO: 在此处添加构造函数逻辑");
Log.WriteLine(m_strOutFileName," //");
Log.WriteLine(m_strOutFileName," }");
Log.WriteLine(m_strOutFileName," ");
Log.WriteLine(m_strOutFileName," public string m_strConnnectString; ");
Log.WriteLine(m_strOutFileName,"");
Log.WriteLine(m_strOutFileName," //Procedure Parameters ");
foreach(System.Data.DataRow rd in ds.Tables[0].Rows)
{
// strName,strType,strLength;
strName = rd["name"].ToString();
strType = rd["type"].ToString();
strLength = rd["length"].ToString();
if(strType.CompareTo("sysname") == 0)
{
str =" //"+ GetNote(strName,strType,strLength);
Log.WriteLine(m_strOutFileName,str);
continue;
}
//strName = strName.Replace("@","");//去处"@"字符
str = " "+GetMember(strName,strType,strLength,ref strCallProcedureFunctionHead,ref strCallProcedureFunctionBoy);
Log.WriteLine(m_strOutFileName,str);
}
Log.WriteLine(m_strOutFileName," ");
strCallProcedureFunctionHead = strCallProcedureFunctionHead.Replace("( , " ,"(")+")";
string strFunction = " /// Methods Procedure:"+strProcedureName+" /n";
if(m_bWebService == true)
{
strFunction += " [WebMethod]/n";
}
else
{
strFunction += " //[WebMethod] // WebService 使用取消注释/n";
}
strFunction += strCallProcedureFunctionHead+ "/n"+
" {/n"+
strCallProcedureFunctionBoy+
" return DataProvider.GetDataSet(command);/n"+
" }/n/n";
Log.WriteLine(m_strOutFileName,strFunction);
// Log.WriteLine(m_strOutFileName," /// Methods");
//
// Log.WriteLine(m_strOutFileName,strCallProcedureFunctionHead);
// Log.WriteLine(m_strOutFileName," {/n");
// Log.WriteLine(m_strOutFileName,strCallProcedureFunctionBoy);
// Log.WriteLine(m_strOutFileName," return DataProvider.GetDataSet(command);/n");
// Log.WriteLine(m_strOutFileName," }");
Log.WriteLine(m_strOutFileName," }");
strCallProcedureFunctions += strFunction;
return 0;
}
private string GetNote(string strName,string strType,string strLength)
{
string str = "Name:"+strName+" Type:"+strType+" Length:"+strLength;
return str;
}
private string GetMember(string strName,string strType,string strLength,ref string strParameter ,ref string strBoy)
{
string strMember="";
string strAttribute = "public ";
string strName2 = strName;
strName = strName.Replace("@","");
strBoy += " ";
switch(strType)
{
case "bigint":
strMember = strAttribute +"long m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , long "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.BigInt).Value = "+strName+";/n";
break ;
case "binary":
strMember = strAttribute +"byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , byte []"+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Binary ).Value = "+strName+";/n";
break ;
case "bit":
strMember = strAttribute +"Boolean m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Boolean "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Bit ).Value = "+strName+";/n";
break ;
case "char":
strMember = strAttribute +"string m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , string "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Char ).Value = "+strName+";/n";
break ;
case "datetime":
strMember = strAttribute +"System.DateTime m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , System.DateTime "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.DateTime ).Value = "+strName+";/n";
break ;
case "decimal":
strMember = strAttribute +"Decimal m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Decimal "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Decimal ).Value = "+strName+";/n";
break ;
case "float":
strMember = strAttribute +"double m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , double "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Float ).Value = "+strName+";/n";
break ;
case "image":
strMember = "//"+strAttribute +" byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , byte []"+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Image ).Value = "+strName+";/n";
break ;
case "int":
strMember = strAttribute +"Int32 m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Int32 "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Int ).Value = "+strName+";/n";
break ;
case "money":
strMember = strAttribute +"decimal m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Decimal "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Money ).Value = "+strName+";/n";
break ;
case "nchar":
strMember = strAttribute +"string m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , string "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.NChar ).Value = "+strName+";/n";
break ;
case "ntext":
strMember = strAttribute +"byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , string "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.NText ).Value = "+strName+";/n";
break ;
case "numeric":
strMember = strAttribute +"Decimal m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Decimal"+strName;
strBoy += "//command.Parameters.Add(/""+strName2+"/", SqlDbType.VarNumeric ).Value = "+strName+";/n";//VarNumeric
break ;
case "nvarchar":
strMember = strAttribute +"byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , string "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.NVarChar ).Value = "+strName+";/n";
break ;
case "real":
strMember = strAttribute +"Single m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Single "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Real ).Value = "+strName+";/n";
break ;
case "smalldatetime":
strMember = strAttribute +"System.DateTime m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , System.DateTime "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.SmallDateTime ).Value = "+strName+";/n";
break ;
case "smallint":
strMember = strAttribute +"Int16 m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Int16 "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.SmallInt ).Value = "+strName+";/n";
break ;
case "smallmoney":
strMember = strAttribute +"Decimal m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Decimal "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.SmallMoney ).Value = "+strName+";/n";
break ;
case "sql_variant":
strMember = strAttribute +"object m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , object"+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Variant ).Value = "+strName+";/n";
break ;
case "sysname":
strMember = strAttribute +"byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += "/* , byte []"+strName+"*/";
strBoy += "//command.Parameters.Add(/""+strName2+"/", SqlDbType.Binary ).Value = "+strName+";/n";
break ;
case "text":
strMember = strAttribute +"string m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , string "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Text ).Value = "+strName+";/n";
break ;
case "timestamp":
strMember = strAttribute +"byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , byte []"+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.Timestamp ).Value = "+strName+";/n";
break ;
case "tinyint":
strMember = strAttribute +"byte m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , byte "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.TinyInt ).Value = "+strName+";/n";
break ;
case "uniqueidentifier":
strMember = strAttribute +"Guid m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , Guid "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.UniqueIdentifier ).Value = "+strName+";/n";
break ;
case "varbinary":
strMember = strAttribute +"byte []m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , byte []"+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.VarBinary ).Value = "+strName+";/n";
break ;
case "varchar":
strMember = strAttribute +"string m_" +strName+"; // "+GetNote(strName,strType,strLength);
strParameter += " , string "+strName;
strBoy += "command.Parameters.Add(/""+strName2+"/", SqlDbType.VarChar ).Value = "+strName+";/n";
break;
default:
strMember = "//UnKnow type "+GetNote(strName,strType,strLength);;
strParameter += "/* , byte []"+strName+"*/";
strBoy += "//command.Parameters.Add(/""+strName2+"/", SqlDbType.Binary ).Value = "+strName+";/n";
break;
}
return strMember;
}
private void WirteProvider(string strFileName)
{
Log.WriteLine(strFileName," ");
string strFileContent=" // For database"+"/n"+
" public class DataProvider"+"/n"+
" {"+"/n"+
" // Methods"+"/n"+
" public DataProvider()"+"/n"+
" {"+"/n"+
" }"+"/n"+
""+"/n"+
" "+"/n"+
""+"/n"+
" public static int ExecNonQuery(SqlCommand Sqlcmd)"+"/n"+
" {"+"/n"+
" int num1;"+"/n"+
" try"+"/n"+
" {"+"/n"+
" if (Sqlcmd.Connection.State != ConnectionState.Open)"+"/n"+
" {"+"/n"+
" Sqlcmd.Connection.Open();"+"/n"+
" }"+"/n"+
" num1 = Sqlcmd.ExecuteNonQuery();"+"/n"+
" }"+"/n"+
" catch (Exception exception1)"+"/n"+
" {"+"/n"+
" throw exception1;"+"/n"+
" }"+"/n"+
" finally"+"/n"+
" {"+"/n"+
" if (Sqlcmd.Connection.State == ConnectionState.Open)"+"/n"+
" {"+"/n"+
" Sqlcmd.Connection.Close();"+"/n"+
" }"+"/n"+
" }"+"/n"+
" return num1;"+"/n"+
" }"+"/n"+
""+"/n"+
""+"/n"+
" public static object ExecuteScalar(SqlCommand Sqlcmd)"+"/n"+
" {"+"/n"+
" object obj1;"+"/n"+
" try"+"/n"+
" {"+"/n"+
" if (Sqlcmd.Connection.State != ConnectionState.Open)"+"/n"+
" {"+"/n"+
" Sqlcmd.Connection.Open();"+"/n"+
" }"+"/n"+
" obj1 = Sqlcmd.ExecuteScalar();"+"/n"+
" }"+"/n"+
" catch (Exception exception1)"+"/n"+
" {"+"/n"+
" throw exception1;"+"/n"+
" }"+"/n"+
" finally"+"/n"+
" {"+"/n"+
" if (Sqlcmd.Connection.State == ConnectionState.Open)"+"/n"+
" {"+"/n"+
" Sqlcmd.Connection.Close();"+"/n"+
" }"+"/n"+
" }"+"/n"+
" return obj1;"+"/n"+
" }"+"/n"+
""+"/n"+
" "+"/n"+
""+"/n"+
" public static DataSet GetDataSet(SqlCommand SqlCmd)"+"/n"+
" {"+"/n"+
" DataSet set2;"+"/n"+
" DataSet set1 = new DataSet();"+"/n"+
" try"+"/n"+
" {"+"/n"+
" if (SqlCmd.Connection.State != ConnectionState.Open)"+"/n"+
" {"+"/n"+
" SqlCmd.Connection.Open();"+"/n"+
" }"+"/n"+
" new SqlDataAdapter(SqlCmd).Fill(set1);"+"/n"+
" set2 = set1;"+"/n"+
" }"+"/n"+
" catch (Exception exception1)"+"/n"+
" {"+"/n"+
" throw exception1;"+"/n"+
" }"+"/n"+
" finally"+"/n"+
" {"+"/n"+
" if (SqlCmd.Connection.State == ConnectionState.Open)"+"/n"+
" {"+"/n"+
" SqlCmd.Connection.Close();"+"/n"+
" }"+"/n"+
" }"+"/n"+
" return set2;"+"/n"+
" }"+"/n"+
""+"/n"+
" }";
Log.WriteLine(strFileName,strFileContent);
Log.WriteLine(strFileName,"");
Log.WriteLine(strFileName,"");
}
}
}
调用例子
string strConn = "Server=192.168.0.111; DataBase=5; user id=sa; pwd=sa; Connect Timeout=30;";
Procedure pro = new Procedure(strConn);
pro.m_bWebService = false;
pro.m_strOutFileName = "p.cs";
pro.WriteProcedures();