c# Ado.net实现读取数状态"置疑"据库存储过程列表及参数信息示例

  

本文实例讲述了c# Ado.net读取数状态"置疑"据库存储过程列表及参数信息的方法。分享给大家供大家参考,具体如下:

  

得到数据库存储过程列表:

        从dbo选择*。sysobjects OBJECTPROPERTY (id、N 'IsProcedure ')=1订单的名字      之前      

得到某个存储过程的参数信息:(SQL方法)

        select * from syscolumns ID的地方   (从sysobjects作为选择id   OBJECTPROPERTY (id、N 'IsProcedure ')=1   和id=object_id (N [dbo] . [mystoredprocedurename]))      之前      

得到某个存储过程的参数信息:(Ado.net方法)

        SqlCommandBuilder.DeriveParameters (mysqlcommand);      之前      

得到数据库所有表:

        从dbo选择*。sysobjects OBJECTPROPERTY (id、N 'IsUserTable ')=1订单的名字      之前      

得到某个表中的字段信息:

        选择c.name ColumnName, c。colorder ColumnOrder, c。xtype作为数据类型,typ.name DataTypeName, c。长度,c。从dbo isnullable。syscolumns c内连接dbo。sysobjects t   在c。id=t.id   内连接dbo。systypes typ>   使用System.Data.SqlClient;   私人空间GetStoredProceduresList ()   {   字符串从dbo sql=" select *。sysobjects OBJECTPROPERTY (id、N 'IsProcedure ')=1订单的名字”;   字符串connStr=@数据源=(当地);初始目录=mydatabase;集成安全=True;连接超时=1;”;   SqlConnection康涅狄格州=new SqlConnection (connStr);   康涅狄格州SqlCommand cmd=new SqlCommand (sql);   cmd。CommandType=CommandType.Text;   试一试   {   conn.Open ();   使用(SqlDataReader MyReader=cmd.ExecuteReader ())   {   而(MyReader.Read ())   {//存储过程名   this.listBox1.Items.Add (MyReader [0] .ToString ());   }   }   }   最后   {   conn.Close ();   }   }      之前      

<强> 2。得到某个存储过程的参数信息:(Ado.net方法)

        使用System.Data.SqlClient;   私人空间GetArguments ()   {   字符串connStr=@数据源=(当地);初始目录=mydatabase;集成安全=True;连接超时=1;”;   SqlConnection康涅狄格州=new SqlConnection (connStr);   SqlCommand cmd=new SqlCommand ();   cmd。连接=康涅狄格州;   cmd。CommandText=" mystoredprocedurename”;   cmd。CommandType=CommandType.StoredProcedure;   试一试   {   conn.Open ();   SqlCommandBuilder.DeriveParameters (cmd);   foreach (cmd.Parameters SqlParameter var)   {   如果(cmd.Parameters.IndexOf (var)==0)继续;//跳过返回值   MessageBox.Show(字符串。格式(“参数:{0}{1}类型:{2}{1}方向:{3}”,   var.ParameterName,   Environment.NewLine,   var.SqlDbType.ToString (),   var.Direction.ToString ())));   }   }   最后   {   conn.Close ();   }   }      之前      

<强> 3。列出所有数据库:

        使用系统;   使用System.Windows.Forms;   使用System.Collections.Generic;   使用text;   使用System.Data;   使用System.Data.SqlClient;   私有静态字符串connString=俺中踩畔?True;超时=5;数据源=192.168.1.8;用户ID=sa;密码=密码”;///& lt; summary>///列出所有数据库///& lt;/summary>///& lt; returns> & lt;/returns>   公共string [] getdatabase ()   {   返回GetList(“从sysdatabases顺序选择名字的名字asc”);   }   私人string [] GetList (string sql)   {   如果(String.IsNullOrEmpty (connString))返回null;   字符串connStr=connString;   SqlConnection康涅狄格州=new SqlConnection (connStr);   康涅狄格州SqlCommand cmd=new SqlCommand (sql);   cmd。CommandType=CommandType.Text;   试一试   {   conn.Open ();   Listret=new List ();   使用(SqlDataReader MyReader=cmd.ExecuteReader ())   {   而(MyReader.Read ())   {   ret.Add (MyReader [0] .ToString ());   }   }   如果(ret.Count比;0)返回ret.ToArray ();   返回null;   }   最后   {   conn.Close ();   }   }      之前      

<强> 4。得表表到格列表:

        私有静态字符串connString=俺中踩畔?True;超时=5;数据源=192.168.1.8;初始目录=myDb;用户ID=sa;密码=密码”;/*从sysobjects选择名字xtype=- - - - - -“u”   C=检查约束   D=默认值或违约约束   F=外键约束   L=日志   FN=标量函数   如果=内嵌表函数   P=存储过程   PK=主键约束(类型是K)   射频=复制筛选存储过程   S=系统表   TF=表函数   TR=触发器   U=用户表   UQ=独特约束(类型是K)   V=视图   X=扩展存储过程   */公共string [] GetTableList ()   {   返回GetList(“选择的名字从sysobjects xtype=癠”和名称& lt;比;dtproperties秩序的名字asc”);   }      

c# Ado.net实现读取数状态"置疑"据库存储过程列表及参数信息示例