一份礼物: 自动填充SqlCommand.Parameters的类(2)-.Net技术-3P代码网
繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 一份礼物: 自动填充SqlCommand.Parameters的类(2)

一份礼物: 自动填充SqlCommand.Parameters的类(2)

2007-06-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:/// /// 获取存储过程的相关表的列名和isnuable /// /// 存储过程名称 /// Hastable public Hashtable SPDependonTable(Int32 spid) { try { //验证连接 if(conn!=null && conn.State!=ConnectionState.Open) ...

///

/// 获取存储过程的相关表的列名和isnuable

///

/// 存储过程名称

/// Hastable

public Hashtable SPDependonTable(Int32 spid)

{

try

{

//验证连接

if(conn!=null && conn.State!=ConnectionState.Open)

{

conn.Open();

}

else

{

conn= new SqlConnection(this.connectionString);

conn.Open();

}

string sqlstr="SELECT name, isnullable as allowNUll FROM dbo.syscolumns WHERE (id IN (SELECT DISTINCT id FROM dbo.sysobjects WHERE (id IN (SELECT DISTINCT dbo.sysdepends.depid FROM dbo.sysdepends WHERE (dbo.sysdepends.id ="+spid+")))))";

//获取相关表的isnullable

SqlDataAdapter comm= new SqlDataAdapter(sqlstr,conn );

DataSet depds=new DataSet();

comm.Fill(depds,"dbo.syscolumns");

Hashtable dependtbl=new Hashtable();

//建立Hashtble

for(int n=0;n

{

string keyname="@"+depds.Tables["dbo.syscolumns"].Rows[n]["name"];

Boolean isnullabled=Convert.ToBoolean( depds.Tables["dbo.syscolumns"].Rows[n]["allowNull"]);

dependtbl.Add(keyname,isnullabled);

}

return dependtbl;

}

catch(SqlException se)

{

throw(se);

}

catch(Exception e)

{

throw(e);

}

finally

{

if(conn.State ==ConnectionState.Open)

{

conn.Close();

}

}

}

///

/// 获得指定表的所有字段对象

///

/// 表名

/// System.Data.DataTable

public DataTable GetFields(String TableName)

{

try

{

DataSet myDataSet=new DataSet();

//验证连接

if(conn!=null && conn.State!=ConnectionState.Closed)

{

conn.Open();

}

else

{

conn= new SqlConnection(this.connectionString);

conn.Open();

}

SqlDataAdapter comm= new SqlDataAdapter("SELECT * from "+TableName,conn);

comm.FillSchema(myDataSet, SchemaType.Mapped,TableName);

return myDataSet.Tables[0];

}

catch(SqlException se)

{

throw(se);

}

}

///

///私有: 获取数据类型(DbType)

///

/// 数据类型名称

/// DbType

private DbType getDbType(string typename)

{

//DbType t;

#region switch datatype

switch(typename)

{

//int64

case "bigint":

return DbType.Int64;

//break;

//int32

case "int":

return DbType.Int32;

//break;

//int16

case "smallint":

return DbType.Int16;

//break;

//byte

case "binary":

return DbType.Byte;

//break;

case "image":

return DbType.Byte;

//break;

case "varbinary":

return DbType.Byte;

//break;

case "tinyint":

return DbType.Byte;

//break;

//boolean

case "bit":

return DbType.Boolean;

//break;

//string

case "varchar":

return DbType.String;

//break;

case "text":

return DbType.String;

//break;

case "nvarchar":

return DbType.String;

//break;

case "ntext":

return DbType.String;

//break;

case "nchar":

return DbType.String;

//break;

case "char":

return DbType.String ;

//break;

//DateTime

case "datetime":

return DbType.DateTime;

//break;

case "smalldatetime":

return DbType.DateTime;

//break;

case "timestamp":

return DbType.DateTime;

//break;

//double

case "Float":

return DbType.Double;

//break;

//decimal

case "decimal":

return DbType.Decimal;

//break;

case "money":

return DbType.Decimal ;

//break;

case "smallmoney":

return DbType.Decimal;

//break;

default:

return DbType.Object;

//break;

}

#endregion

}

///

/// 获取数据类型(SqlDbType)

///

/// 数据类型名称

/// SqlDbType

public SqlDbType getSqlDbType(string typename)

{

//SqlDbType t;

#region switch datatype

switch(typename)

{

//int64

case "bigint":

return SqlDbType.BigInt;

//break;

//int32

case "int":

return SqlDbType.Int;

//break;

//int16

case "smallint":

return SqlDbType.SmallInt;

//break;

//byte

case "binary":

return SqlDbType.Binary;

//break;

case "image":

return SqlDbType.Image;

//break;

case "varbinary":

return SqlDbType.VarBinary;

//break;

case "tinyint":

return SqlDbType.TinyInt;

//break;

//boolean

case "bit":

return SqlDbType.Bit;

//break;

//string

case "varchar":

return SqlDbType.VarChar;

//break;

case "text":

return SqlDbType.Text;

//break;

case "nvarchar":

return SqlDbType.NVarChar;

//break;

case "ntext":

return SqlDbType.NText ;

//break;

case "nchar":

return SqlDbType.NChar;

//break;

case "char":

return SqlDbType.Char;

//break;

//DateTime

case "datetime":

return SqlDbType.DateTime;

//break;

case "smalldatetime":

return SqlDbType.SmallDateTime;

//break;

case "timestamp":

return SqlDbType.Timestamp;

//break;

//double

case "Float":

return SqlDbType.Float;

//break;

//decimal

case "decimal":

return SqlDbType.Decimal;

//break;

case "money":

return SqlDbType.Money;

//break;

case "smallmoney":

return SqlDbType.SmallMoney;

//break;

default:

return SqlDbType.Variant;

//break;

}

#endregion

}

#endregion

}

}

责任编辑:admin
相关文章