ASP.NET執行存儲過程 一. 執行一個沒有參數的存儲過程的代碼如下: connectionString為連接字符串 SqlConnection conn=new SqlConnection(connectionString); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand(); da.SelectCommand.Connection = conn; //myProc存儲過程的名字 da.SelectCommand.CommandText = "myProc"; da.SelectCommand.CommandType = CommandType.StoredProcedure; 二. 執行一個有參數的存儲過程的代碼如下 SqlConnection conn=new SqlConnection(connectionString); SqlDataAdapter da = new SqlDataAdapter(); da.selectCommand = new SqlCommand(); da.selectCommand.Connection = conn; da.selectCommand.CommandText = "NameOfProcedure"; da.selectCommand.CommandType = CommandType.StoredProcedure; param = new SqlParameter("@ParameterName", SqlDbType.DateTime); param.Direction = ParameterDirection.Input; param.Value = Convert.ToDateTime(inputdate); da.selectCommand.Parameters.Add(param); 若需要添加輸出參數: param = new SqlParameter("@ParameterName", SqlDbType.DateTime); param.Direction = ParameterDirection.Output; param.Value = Convert.ToDateTime(inputdate); da.selectCommand.Parameters.Add(param); 若要獲得參儲過程的返回值: param = new SqlParameter("@ParameterName", SqlDbType.DateTime); param.Direction = ParameterDirection.ReturnValue; param.Value = Convert.ToDateTime(inputdate); da.selectCommand.Parameters.Add(param); try { //****進行數據連接****// string conString="server=localhost;database=stuDB;uid=sa";//連接串 SqlConnection sqlConnection=new SqlConnection(conString);//創建連接對象 sqlConnection.Open();//打開連接 SqlCommand sqlCommand=new SqlCommand();//創建SqlCommand命令對象 sqlCommand.Connection=sqlConnection;//SqlCommand命令對象的連接屬性賦值 sqlCommand.CommandType=CommandType.StoredProcedure;//**************命令對象的類型為執行數據庫的存儲過程*********** string sql = string.Format("proc_insert_stuClass");//Sql語句為數據庫的存儲過程 sqlCommand.CommandText=sql;//命令文本 //****設置存儲過程的參數****// SqlParameter sp1=new SqlParameter("@outcome",SqlDbType.Bit);//創建參數對象,並設置@outcome參數的類型為Bit類型 sp1.Direction=System.Data.ParameterDirection.Output;//設置此項參數的類型為輸出參數 sqlCommand.Parameters.Add(sp1);//將此項參數添加到命令參數集 SqlParameter sp=new SqlParameter("@classNo",SqlDbType.VarChar); sp.Direction=System.Data.ParameterDirection.Input;//設置此項參數的類型為輸入參數 sp.Value=this.textBox1.Text;//給輸入參數賦值 sqlCommand.Parameters.Add(sp); sp=new SqlParameter("@classCount",SqlDbType.Int); sp.Direction=System.Data.ParameterDirection.Input;//設置此項參數的類型為輸入參數 sp.Value=this.textBox2.Text;//給輸入參數賦值 sqlCommand.Parameters.Add(sp); sp=new SqlParameter("@classTeacher",SqlDbType.VarChar); sp.Direction=System.Data.ParameterDirection.Input;//設置此項參數的類型為輸入參數 sp.Value=this.textBox3.Text;//給輸入參數賦值 sqlCommand.Parameters.Add(sp); sp=new SqlParameter("@classNote",SqlDbType.VarChar); sp.Direction=System.Data.ParameterDirection.Input;//設置此項參數的類型為輸入參數 sp.Value=this.textBox4.Text;//給輸入參數賦值 sqlCommand.Parameters.Add(sp); //****執行存儲過程****// sqlCommand.ExecuteNonQuery();//執行存儲過程 string outcome=sp1.Value.ToString();//將輸出參數的值取出 Console.WriteLine(outcome); } catch(Exception ex) { MessageBox.Show(ex.Message); }
