1.SQL处理多个结果集
SqlCommand cmd = new SqlCommand("SELECT TOP 5 * FROM Employees;" +
"SELECT TOP 5 * FROM Customers;" + "SELECT TOP 5 * FROM Suppliers", conn);
StringBuilder htmlStr = new StringBuilder("");
int i=0;
do
{
htmlStr.Append("<h2>Roeset");
htmlStr.Append(i.ToString());
htmlStr.Append("</h2>");
while(dr.Read())
{
htmlStr.Append("<li>");
for(int j=0;j<3;j++)
{
htmlStr.Append(dr.GetName(j));
htmlStr.Append(": ");
htmlStr.Append(dr.GetValue(j).ToString());
htmlStr.Append(" ");
}
htmlStr.Append("</li>");
}
htmlStr.Append("<br/><br/>");
i++;
} while (dr.NextResult()); //NextResult()访问到下一个记录集
dr.Close();
conn.Close();
Label1.Text = htmlStr.ToString();
2.SqlCommand.ExecuteScalar()返回单字段查询,多用于使用SQL的聚合函数
string Query="SELECT SUM(*) FROM Employees";
int result = (int)cmd.ExecuteScalar();
3.Dataset和DataAdapter类实现非连接数据访问。
DataSet类包括DataRelation和DataTable两个集合。DataTable又包含DataRow和DataColumn等集合。使用DataSet操作数据时,不会直接影响数据源的数据,只是作用于本地内存里的DataSet里。
DataAdapter是DataSet中的DataTable和数据源之间的桥梁。有包括查询和更新的所有命令。DataAdapter包括四个Command属性,填充DataSet时,必须设定SelectCommand。
//填充DataSet
string connectionString = "Integrated Security=True;Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=003024mao;";
SqlConnection conn = new SqlConnection(connectionString);
string Query = "SELECT * FROM Employees";
//设置SelectCommand属性
SqlDataAdapter da = new SqlDataAdapter(Query, conn);
DataSet ds = new DataSet();
//Fill()把查询结果放到DataTable中,调用该方法时,DataAdapter会自动打开和关闭连接。
da.Fill(ds, "Employees");
//显示DataSet的内容
StringBuilder htmlStr = new StringBuilder("");
foreach (DataRow dr in ds.Tables["Employees"].Rows)
{
htmlStr.Append("<li>");
htmlStr.Append(dr["TitleOfCourtesy"].ToString());
htmlStr.Append("<b>");
htmlStr.Append(dr["LastName"].ToString());
htmlStr.Append("</b>");
htmlStr.Append(dr["FirstName"].ToString());
htmlStr.Append("</li>");
}
Label1.Text = htmlStr.ToString