1. 程式人生 > >使用ADO.NET物件呼叫儲存過程的輸入和輸出引數

使用ADO.NET物件呼叫儲存過程的輸入和輸出引數

使用ADO.NET物件

總體上,操作SQL Server的程式和操作Access的程式方法一致。只需要做3個地方的修改,就可以把操作Access資料庫的程式改成操作SQL Server的程式。



(1)修改引入的名稱空間。操作Access資料庫使用的是“System.Data.OleDb”,改成“System.Data.SqlClient”。

(2)修改ADO.NET的物件。分別把OleDbConnection、OleDbCommand、OleDbDataReader和OleDbDataAdapter等物件修改成SqlConnection、SqlCommand、SqlDataReader和SqlDataAdapter等物件。

(3)修改Connection物件的資料庫連線串。操作Access資料庫一般用:

“"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("person.mdb");”

修改為SQL Server連線串:“"server=localhost;database=pubs;uid=sa;pwd=''"”。

呼叫SQL Server的儲存過程

= new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");

SqlCommand Comm = new SqlCommand("testProc",);

// 將命令型別設為儲存過程

Comm.CommandType=CommandType.StoredProcedure;

Conn.Open();

SqlDataReader dr = Comm.ExecuteReader();

dg.DataSource = dr;

dg.DataBind();

Conn.Close();

}

呼叫儲存過程的輸入和輸出引數

= new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");

SqlCommand Comm = new SqlCommand("sp_CheckPass",);

// 將命令型別設為儲存過程

Comm.CommandType=CommandType.StoredProcedure;

// 新增並給引數賦值

SqlParameter Parm = Comm.Parameters.Add("@CHKName", SqlDbType.VarChar, 12);

Parm.Value = "aa";

Parm = Comm.Parameters.Add("@CHKPass", SqlDbType.VarChar, 12);

Parm.Value = "aa";

Parm = Comm.Parameters.Add("@ISValid", SqlDbType.VarChar, 28);

Parm.Direction = ParameterDirection.Output;

Conn.Open();

SqlDataReader dr = Comm.ExecuteReader();

Response.Write(Comm.Parameters["@ISValid"].Value);

Conn.Close();