C# SqlCommand 数据库连接操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 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。

所以,举一反三、发现其本质,方可灵活运用。

猜你喜欢

转载自blog.csdn.net/pengshengli/article/details/84108889