当前位置:首页 > 网络编程 > WEB编程 > ASP.net > 自动填充SqlCommand.Parameters的类(2)

自动填充SqlCommand.Parameters的类(2)

点击次数:13 次 发布日期:2008-11-26 23:30:17 作者:源代码网
源代码网推荐 /// <summary>
源代码网推荐         /// 获取存储过程的相关表的列名和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
源代码网推荐     }
源代码网推荐 }

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华