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對象 |