DataSet/DataTable/DataRow,可以将从数据库中查询的数据存放在程序缓存中,并提供一系列操作.
.NET Framework 数据提供程序
Connection/DataAdapter/DataReader/Command用来直接操作数据库
ADO.Net中通过SqlConnection类创建到SQLServer的连接
SqlCommand-执行增删改,执行方法.ExecuteNonQuery() ,返回受影响行数(int)
SqlCommand-查询单个值,ExecuteScalar(),返回单个值(结果集中第一行的第一列)
SqlCommand-查询多行,ExecuteReader(),用SqlDataReader对象的Read()方法逐行读取结果。
SqlDataAdapter&数据集-查询多行,Fill(new DataSet(),"自己命名的表,存在DataSet中")方法把查询的结果填充到DataSet中
查询例子:
public DataTable getTable(string dataName, string tableName,string whereString)
{
//语句
string openStr = "Data Source=2WZ6KLUYJPOLITW;Integrated Security=True";
string strSql = "use " + dataName + " select * from " + tableName + whereString;
//建立数据通道
openSql = new SqlConnection();
openSql.ConnectionString = openStr;
openSql.Open();
//利用通道操作sql语句
sqlTable = new SqlDataAdapter(strSql, openSql);
//填充表
myTable = new DataSet();
sqlTable.Fill(myTable, "table_1");
//关闭数据库
openSql.Close();
//返回表
return myTable.Tables["table_1"];
}
带参数的sql语句
public void x()
{
//带参数的sql语句用法
using (SqlConnection sc = new SqlConnection("连接字符串串"))
{
string sqlStr = "selct * from tableNmae where loginName=@UserName and loginPasword=@UserPasword ";//在sql语句中用@修饰表示变量@UserName
using (SqlCommand sm = new SqlCommand(sqlStr, sc))
{
//第一种写法
SqlParameter sp = new SqlParameter("@UserName", SqlDbType.VarChar,50);//指定变量,变量数据类型是int,长度是32
SqlParameter sp2 = new SqlParameter("@UserPasword", SqlDbType.Int, 32);
sp.Value = "name";//接收参数值
sp2.Value = 2;
sm.Parameters.Add(sp);//把变量添加到SqlCommand中
sm.Parameters.Add(sp2);
//第二种写法(多参数时候用这个)
SqlParameter[] splist = new SqlParameter[]{new SqlParameter("@UserName", SqlDbType.VarChar,50),new SqlParameter("@UserPasword", SqlDbType.Int, 32)
};
sm.Parameters.AddRange(splist);
sc.Open();
var x = sm.ExecuteScalar();
}
}
}