自动填充SqlCommand.Parameters的类(2)
点击次数:13 次 发布日期:2008-11-26 23:30:17 作者:源代码网
|
源代码网推荐 /// 获取存储过程的相关表的列名和isnuable 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="spid">存储过程名称</param> 源代码网推荐 /// <returns>Hastable</returns> 源代码网推荐 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<depds.Tables[0].Rows.Count;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(); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 /// <summary> 源代码网推荐 /// 获得指定表的所有字段对象 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="TableName">表名</param> 源代码网推荐 /// <returns>System.Data.DataTable</returns> 源代码网推荐 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); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 /// <summary> 源代码网推荐 ///私有: 获取数据类型(DbType) 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="typename">数据类型名称</param> 源代码网推荐 /// <returns>DbType</returns> 源代码网推荐 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 源代码网推荐 源代码网推荐 } 源代码网推荐 /// <summary> 源代码网推荐 /// 获取数据类型(SqlDbType) 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="typename">数据类型名称</param> 源代码网推荐 /// <returns>SqlDbType</returns> 源代码网推荐 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 源代码网推荐 } 源代码网推荐 } 源代码网供稿. |
