六、调用存储过程
SqlCommand cmd = new SqlCommand("GetCustomer", conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter para1 = new SqlParameter("@CustomerID", SqlDbType.NChar, 10); para1.Value = "UINET"; cmd.Parameters.Add(para1); SqlParameter para2 = new SqlParameter("@CompanyName", SqlDbType.NVarChar, 30); para2.Direction = ParameterDirection.Output; cmd.Parameters.Add(para2); cmd.ExecuteNonQuery(); Console.WriteLine(cmd.Parameters["@CompanyName"].Value);
七、使用DataReader获取数据库模式信息
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly);//仅仅读取模式信息 DataTable table = reader.GetSchemaTable(); foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { Console.WriteLine(col.ColumnName + row[col.ColumnName]); } }
八、浏览多个结果集
SqlCommand cmd = new SqlCommand("select * from Catogories;select * from Customers", conn); SqlDataReader reader = cmd.ExecuteReader();//仅仅读取模式信息 DataTable table = reader.GetSchemaTable(); do//首先自动定位在第一个结果集上 { while (reader.Read()) { Console.Write(reader[0]); } } while (reader.NextResult());
九、DbDataReader类
从数据源中读取行的只进流,包含SqlDataReader ,OleDbDataReader ,OdbcDataReader ,实现了IDataReader IDataRecord 接口
- 属性
IsClosed 获取一个值,该值指示数据读取器是否已关闭。
FieldCount 获取当前行中的列数。
Item[Int32] 获取位于指定索引处的列。
Item[String] 获取具有指定名称的列。
- 方法
Close() 关闭 IDataReader 对象。
GetSchemaTable() 返回一个 DataTable,它描述 IDataReader 的列元数据。
NextResult() 在读取一批 SQL 语句的结果时,使数据读取器前进到下一个结果。
Read() 让 IDataReader 前进到下一条记录。
Get***(Int32) 获取指定列的值。
GetValues(Object[]) 使用当前记录的列值填充对象的数组。
IsDBNull(Int32) 返回指定字段是否设置为 null。
到此这篇关于C#SQLCommand命令与DbTransaction事务处理的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。