版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pengshengli/article/details/84108889
//数据库操作
string strcon = "server = localhost,1433;uid = sa; pwd = 123456; database = MyDataBase";
string strSQL = "select Name,Chinese,Math,English from Student where Name = @name";
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand(strSQL, con);
cmd.Parameters.Add("@name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = Name;
DataSet ds = new DataSet();
try
{
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DA.Fill(ds, "tb");
}
catch (SqlException E)
{
throw new Exception(E.Message);
}
con.Close();//关闭数据库
这是完整的SqlCommand 连接数据、从数据库取数据的代码,重点说一下SqlCommand :
其实这段代码也可以这样写:
//数据库操作
string strcon = "server = localhost,1433;uid = sa; pwd = 123456; database = MyDataBase";
string strSQL = "select Name,Chinese,Math,English from Student where Name = '" + Name + "'";
SqlConnection con = new SqlConnection(strcon);
DataSet ds = new DataSet();
try
{
SqlDataAdapter DA = new SqlDataAdapter(strSQL, con);
DA.Fill(ds, "tb");
}
catch (SqlException E)
{
throw new Exception(E.Message);
}
con.Close();//关闭数据库
也就说,sql参数用字符串拼接的方式,但是字符串拼接有sql注入的危险,另外代码显得不专业,所以推荐使用填充参数的方法。
回到原话题,就是看看SqlCommand cmd链接数据库,都需要填充哪些?
VS查看变量:
CommandText就是sql语句,Parameters就是填充的参数,Parameters[0]就是第一个参数,Parameters[1]是第二个参数...
展开ResultView:
看到这,应该对SqlCommand有所了解。
所以,写代码的时候就可以灵活运用。比如,可以这样写:
//数据库操作
string strcon = "server = localhost,1433;uid = sa; pwd = 123456; database = MyDataBase";
string strSQL = "select Name,Chinese,Math,English from Student where Name = @name";
//先创建cmd对象
SqlCommand cmd = new SqlCommand(strSQL);
cmd.Parameters.Add("@name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = Name;
//后创建连接对象
SqlConnection con = new SqlConnection(strcon);
cmd.Connection = con;//连接对象赋值给cmd的连接对象
DataSet ds = new DataSet();
try
{
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DA.Fill(ds, "tb");
}
catch (SqlException E)
{
throw new Exception(E.Message);
}
con.Close();//关闭数据库
可以看出,Connection是SqlCommand内部的一个元素。
另外: SqlDataAdapter DA = new SqlDataAdapter(cmd);
SqlDataAdapter DA = new SqlDataAdapter(strsql, con);
这个函数是重载的,可以传cmd,也可以传sql和con。
所以,举一反三、发现其本质,方可灵活运用。