asp.net中SqlCommand对象使用
一、SqlCommand常见的属性:SqlCommand属性为执行命令作准备。 1、 CommandText属性:执行的SQL语句; 2、 Connection属性:连接数据库SqlConnection对象; 3、 CommandType属性:解析CommandText的值; SqlCommand cmd = new SqlCommand("login", conn); cmd.CommandType = CommandType.StoredProcedure; //这里采用存储过程 4、 CommandTimeout属性:设置需要执行多久停止; 5、 Parameters属性:设置参数; 二、SqlCommand类构造函数 SqlCommand myCommand = new SqlCommand(sqlupdate, conn); 三、SqlCommand常见的方法: SqlCommand方法主要执行SQL语句。 1、 ExecuteReader()方法:主要执行select语句。将结果返回到SqlDataReader对象。 例: SqlCommand myconn = new SqlCommand("select * from v_economy2_comidd where eid=" + Request.QueryString["eid"] + "", conn); conn.Open(); SqlDataReader rd = myconn.ExecuteReader(); rd.Read(); Lbyear1.Text = rd["year1"].ToString(); Lbmonth1.Text = rd["month1"].ToString(); Lbcom_name.Text = rd["com_name"].ToString(); rd.Close(); conn.Close(); 2、 ExecuteNonQuery()方法:主要执行Insert、Update、Delete语句。返回值为该命令所影响的行数。 例: protected void Button1_Click(object sender, EventArgs e) { string class_name = TextBox1.Text; string pwd = PwdMd5.md5l("111"); SqlCommand myconn = new SqlCommand("insert into UserAdmin(UserName,UserPwd,UserLevel,tim,num)values('" + class_name + "','" + pwd + "','U',@tim,1)", conn); myconn.Parameters.Add(new SqlParameter("@tim", SqlDbType.DateTime, 8)); myconn.Parameters["@tim"].Value = DateTime.Now.ToString(); //显示详细的日期和时间 conn.Open(); myconn.ExecuteNonQuery(); conn.Close(); Response.Write("<script language='javascript'>alert('添加管理员成功!初始密码为123456');location='AdUserMag.aspx'</script>"); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string sqlUpdate = "update UserAdmin set UserPwd=@UserPwd Where UserId='" + int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString().Trim()) + "'"; SqlCommand MyConn = new SqlCommand(sqlUpdate, conn); MyConn.Parameters.Add(new SqlParameter("@UserPwd", SqlDbType.VarChar, 500)); MyConn.Parameters["@UserPwd"].Value = PwdMd5.md5l("111"); conn.Open(); MyConn.ExecuteNonQuery(); conn.Close(); Response.Write("<script language='javascript'>alert('还原密码成功!!还原密码为111');location='AdUserMag.aspx'</script>"); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string sqldel = "delete from UserAdmin where UserId=" + int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString().Trim()); SqlCommand myconn = new SqlCommand(sqldel, conn); conn.Open(); myconn.ExecuteNonQuery(); //lbsql.Text = "<b>已删除记录</b><br>" + sqldel; conn.Close(); BindGrid(); } 3、 ExecuteScalar()方法:返回获得的聚合值(共有多少行数据)。 4、 ExecuteXmlReader()方法。 |
属性:
CommandText | 获取或设置要对数据源执行的sql语句或存储过程名 |
CommandTimeout | 获取或设置在终止执行命令的尝试并生成错误之前的等待时间 |
CommandType | 默认值为Text;当CommandType属性设置为StoredProcedure时CommandText属性应设置为存储过程的名称 |
Connection | 获取或设置Command的连接实例 |
Parameters | Sql或存储过程的参数。默认为“空集合” |
方法:
Cancel | 取消SqlCommand的执行 |
ExecuteNonQuery | 对连接执行sql语句并返回受影响的行数,insert,delete,update等 |
ExecuteReader | 将CommandText发送到Connection并生成一个DataReader |
ExecuteScalar | 从数据库中检索单个值(例如一个聚合值),并返回查询结果所返回的结果集中的第一行第一列 |
ExecuteXmlReader | 将CommandText发送到Connection并生成一个XmlReader对象 |