//DataReader的详细用法
2
cmd.CommandText = "GetInfo";
3
cmd.CommandType = CommandType.StoredProcedure;
4
SqlParameter param = cmd.Parameters.Add("@Fid",16);
5
param = cmd.Parameters.Add("@Fname",SqlDbType.VarChar,8);
6
param.Direction = ParameterDirection.Output;
7
param = cmd.Parameters.Add("@Fphone",SqlDbType.VarChar,8);
8
param.Direction = ParameterDirection.Output;
9
conn.Open();
10
cmd.ExecuteNonQuery();
11
string Fname = cmd.Parameters["@Fname"].Value.ToString();
12
string Fphone = cmd.Parameters["@Fphone"].Value.ToString();
13
Console.WriteLine(Fname + " " + Fphone);
14
conn.Close();
15
showSplit();
16
}
17
18
//**************************************
19
//*演示读取多个无关记录集
20
//**************************************
21
public void multiResult()
22
{
23
SqlCommand cmd;
24
cmd = conn.CreateCommand();
25
string sqla = "select Fname from friend";
26
string sqlb = "select Fphone from friend";
27
cmd.CommandText = sqla + ";" + sqlb;
28
conn.Open();
29
SqlDataReader reader= cmd.ExecuteReader();
30
int i = 1;
31
do
32
{
33
Console.WriteLine("第" + i.ToString() + "个记录集内容如下:\n");
34
while(reader.Read())
35
{
36
Console.WriteLine(reader[0].ToString() + "\t");
37
}
38
i++;
39
}while(reader.NextResult()); //NextResult()移动到下一个记录集
40
reader.Close();
41
conn.Close();
42
showSplit();
43
}
44
45
//**************************************
46
//*使用DataReader获得数据库模式信息
47
//**************************************
48
public void getSchema()
49
{
50
SqlCommand cmd;
51
cmd = conn.CreateCommand();
52
string sql = "select Fid,Fname,Fphone from friend";
53
cmd.CommandText = sql;
54
conn.Open();
55
SqlDataReader reader = cmd.ExecuteReader();
56
DataTable SchemaTable = reader.GetSchemaTable();
57
58
DataRowCollection SchemaColumns = SchemaTable.Rows;
59
DataColumnCollection SchemaProps = SchemaTable.Columns;
60
foreach(DataRow SchemaColumn in SchemaColumns)
61
{
62
foreach(DataColumn SchemaColumnProp in SchemaProps)
63
{
64
Console.WriteLine(SchemaColumnProp.ColumnName + "=" + SchemaColumn[SchemaColumnProp.ColumnName].ToString());
65
}
66
}
67
reader.Close();
68
conn.Close();
69
showSplit();
70
}
71
72
//**************************************
73
//*从数据库读取二进制数据的代码段
74
//*该代码段只是读取二进制的片断,不是
75
//*整个程序,所以不能执行,你可以把它
76
//*集成到你的WinForm项目里面。
77
//**************************************
78
public void getBinary()
79
{
80
/*
81
System.IO.MemoryStream stream = new System.IO.MemoryStream();
82
System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream);
83
int BufferSize = 1024;
84
byte[] Buffer = new Byte[BufferSize];
85
long Offset = 0;
86
long BytesRead = 0;
87
do
88
{
89
BytesRead = reader.GetBytes(2,Offset,Buffer,0,BufferSize);
90
writer.Writer(Buffer,0,(int)BytesRead);
91
writer.Flush();
92
Offset += BytesRead;
93
}
94
while(BytesRead == BufferSize);
95
*/
96
}
97
98
//添加输出分隔
99
private void showSplit()
100
{
101
Console.WriteLine("\n********************************************************************\n");
102
}
103
104
public static void Main(string [] args)
105
{
106
SqlReader sqlreader = new SqlReader();
107
108
sqlreader.basicReader();
109
110
sqlreader.hasParamReader();
111
112
sqlreader.hasOledbParamReader();
113
114
sqlreader.outParamShow();
115
116
sqlreader.multiResult();
117
118
sqlreader.getSchema();
119
}
120
}
2
cmd.CommandText = "GetInfo"; 3
cmd.CommandType = CommandType.StoredProcedure; 4
SqlParameter param = cmd.Parameters.Add("@Fid",16); 5
param = cmd.Parameters.Add("@Fname",SqlDbType.VarChar,8); 6
param.Direction = ParameterDirection.Output; 7
param = cmd.Parameters.Add("@Fphone",SqlDbType.VarChar,8); 8
param.Direction = ParameterDirection.Output; 9
conn.Open(); 10
cmd.ExecuteNonQuery(); 11
string Fname = cmd.Parameters["@Fname"].Value.ToString(); 12
string Fphone = cmd.Parameters["@Fphone"].Value.ToString(); 13
Console.WriteLine(Fname + " " + Fphone); 14
conn.Close(); 15
showSplit(); 16
} 17
18
//************************************** 19
//*演示读取多个无关记录集 20
//************************************** 21
public void multiResult() 22
{ 23
SqlCommand cmd; 24
cmd = conn.CreateCommand(); 25
string sqla = "select Fname from friend"; 26
string sqlb = "select Fphone from friend"; 27
cmd.CommandText = sqla + ";" + sqlb; 28
conn.Open(); 29
SqlDataReader reader= cmd.ExecuteReader(); 30
int i = 1; 31
do 32
{ 33
Console.WriteLine("第" + i.ToString() + "个记录集内容如下:\n"); 34
while(reader.Read()) 35
{ 36
Console.WriteLine(reader[0].ToString() + "\t"); 37
} 38
i++; 39
}while(reader.NextResult()); //NextResult()移动到下一个记录集 40
reader.Close(); 41
conn.Close(); 42
showSplit(); 43
} 44
45
//************************************** 46
//*使用DataReader获得数据库模式信息 47
//************************************** 48
public void getSchema() 49
{ 50
SqlCommand cmd; 51
cmd = conn.CreateCommand(); 52
string sql = "select Fid,Fname,Fphone from friend"; 53
cmd.CommandText = sql; 54
conn.Open(); 55
SqlDataReader reader = cmd.ExecuteReader(); 56
DataTable SchemaTable = reader.GetSchemaTable(); 57
58
DataRowCollection SchemaColumns = SchemaTable.Rows; 59
DataColumnCollection SchemaProps = SchemaTable.Columns; 60
foreach(DataRow SchemaColumn in SchemaColumns) 61
{ 62
foreach(DataColumn SchemaColumnProp in SchemaProps) 63
{ 64
Console.WriteLine(SchemaColumnProp.ColumnName + "=" + SchemaColumn[SchemaColumnProp.ColumnName].ToString()); 65
} 66
} 67
reader.Close(); 68
conn.Close(); 69
showSplit(); 70
} 71
72
//************************************** 73
//*从数据库读取二进制数据的代码段 74
//*该代码段只是读取二进制的片断,不是 75
//*整个程序,所以不能执行,你可以把它 76
//*集成到你的WinForm项目里面。 77
//************************************** 78
public void getBinary() 79
{ 80
/* 81
System.IO.MemoryStream stream = new System.IO.MemoryStream(); 82
System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream); 83
int BufferSize = 1024; 84
byte[] Buffer = new Byte[BufferSize]; 85
long Offset = 0; 86
long BytesRead = 0; 87
do 88
{ 89
BytesRead = reader.GetBytes(2,Offset,Buffer,0,BufferSize); 90
writer.Writer(Buffer,0,(int)BytesRead); 91
writer.Flush(); 92
Offset += BytesRead; 93
} 94
while(BytesRead == BufferSize); 95
*/ 96
} 97
98
//添加输出分隔 99
private void showSplit() 100
{ 101
Console.WriteLine("\n********************************************************************\n"); 102
} 103
104
public static void Main(string [] args) 105
{ 106
SqlReader sqlreader = new SqlReader(); 107
108
sqlreader.basicReader(); 109
110
sqlreader.hasParamReader(); 111
112
sqlreader.hasOledbParamReader(); 113
114
sqlreader.outParamShow(); 115
116
sqlreader.multiResult(); 117
118
sqlreader.getSchema(); 119
} 120
}

浙公网安备 33010602011771号