aspnet調用存儲過程
存儲過程是寫好了還是沒寫?
存儲過程的讀取一般是
sqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
SqlCommand cmd;
這是個形式
cmd = new SqlCommand("sp_你的過程", con);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.Add(new SqlParameter("@Type", SqlDbType.Int));
cmd.Parameters["@Type"].Value = 1;
cmd.Parameters.Add(new SqlParameter("@YourName", SqlDbType.NVarChar, 40));cmd.Parameters["@YourName"].Value = GoodsName.Text.Trim();
GridView1.DataSource = GetDataSet(你的資料庫操作,作為顯示的源);
GridView1.DataKeyNames = new String[] { "id" };
GridView1.DataBind();
這個是GridView的綁定方法
⑵ asp.net調用存儲過程的問題
SelectCommand 這是選擇命令
要用
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandType=CommandType.StoredProcere;
cmd.Text="存儲過程名";
cmd.ExecuteNonQuery();
⑶ 一起學ASP.NET中如何使用存儲過程
asp.net中怎樣調用存儲過程和存儲過程的寫法
創建一個只有輸入參數的存儲過程
createprocereproc_user
@namevarchar(20),
@Passwordvarchar(100)
as
select*fromloginuser
wherenamelike@name
---創建一個有輸入和輸出參數的存儲過程
createprocereproc_usertext
@namevarchar(20),
@blogvarchar(100)output
as
select@blog=blogfromloginuserwherename=@name
---創建一個有輸入和返回參數的存儲過程
createPROCEDUREreturnval
@namevarchar(100),
@blogvarchar(100)output
AS
begin
select@blog=blogfromloginuserwherename=@name
if(@blogisnull)
set@blog=''你還沒有申請博客''
returnexecute(@blog)--數據數型的轉換
end
在asp.net中的調用
protectedvoidPage_Load(objectsender,EventArgse)
{
DataBind();
}
privatevoidDataBind()
{
//只帶輸入參數的存儲過程的寫法。
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["strConnection"].ConnectionString);
SqlCommandcmd=newSqlCommand("proc_user",con);
cmd.CommandType=CommandType.StoredProcere;
cmd.Parameters.AddWithValue("@name","l%");
cmd.Parameters.AddWithValue("@Password","lcs9702");
con.Open();
SqlDataReaderdr=cmd.ExecuteReader();
DropDownList1.DataSource=dr;
DropDownList1.DataTextField="name";
DropDownList1.DataValueField="use_id";
DropDownList1.DataBind();
}
privatevoidtextDataBind()
{
//帶輸入,輸出參數的存儲過程的寫法。
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["strConnection"].ConnectionString);
SqlCommandcmd=newSqlCommand("proc_usertext",con);
cmd.CommandType=CommandType.StoredProcere;
cmd.Parameters.Add("@name","love");
cmd.Parameters.Add("@blog",SqlDbType.VarChar,100);
cmd.Parameters["@blog"].Direction=ParameterDirection.Output;
//cmd.Parameters.Add(newSqlParameter("@blog",SqlDbType.VarChar,100,ParameterDirection.Output,false,0,0,string.Empty,DataRowVersion.Default,null));
cmd.CommandType=CommandType.StoredProcere;
con.Open();
cmd.ExecuteNonQuery();
TextBox1.Text=cmd.Parameters["@blog"].Value.ToString();
con.Close();
}
privatevoidreturnDataBind()
{
//帶輸入,返回參數的存儲過程的寫法。
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["strConnection"].ConnectionString);
SqlCommandcmd=newSqlCommand("returnval",con);
cmd.CommandType=CommandType.StoredProcere;
cmd.Parameters.Add("@name","lcs9702");
cmd.Parameters.Add(newSqlParameter("@blog",SqlDbType.VarChar,100,ParameterDirection.Output,false,0,0,string.Empty,DataRowVersion.Default,null));
cmd.CommandType=CommandType.StoredProcere;
con.Open();
cmd.ExecuteNonQuery();
TextBox2.Text=cmd.Parameters["@blog"].Value.ToString();
con.Close();
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
textDataBind();
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
returnDataBind();
}
⑷ 在ASP.NET中如何調用 oracle 存儲過程調用
(1)執行一個沒有參數的存儲過程的代碼如下:
SqlConnection conn=new SqlConnection(「connectionString」);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "NameOfProcere";
da.SelectCommand.CommandType = CommandType.StoredProcere;
然後只要選擇適當的方式執行此處過程,用於不同的目的即可。
(2)執行一個有參數的存儲過程的代碼如下(我們可以將調用存儲過程的函數聲明為ExeProcere(string inputdate)):
SqlConnection conn=new SqlConnection(「connectionString」);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "NameOfProcere";
da.SelectCommand.CommandType = CommandType.StoredProcere;
(以上代碼相同,以下為要添加的代碼)
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);
⑸ ASP.NET調用存儲過程
給你看下我的,用的時候很簡單,和你拼sql差別不是很大,就一個屬性而已Commandtype這個屬性storeprocere就是調用存儲過程,text是sql語句,我的sqlhelper.ExecuteNonQuery的參數, public static int ExecuteNonQuery(string cmmdText, CommandType cmdType, params SqlParameter[] parameters)
{
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
SqlCommand cmd = PrepareCommand(con, cmmdText, cmdType, parameters);
return cmd.ExecuteNonQuery();
}
}最後一個是參數,如果你的存儲過程有參數,就在這里加,eg:SqlHelper.ExecuteNonQuery("過程名", CommandType.StoredProcere,new SqlParameter("參數名字",值));如果沒有參數,則SqlHelper.ExecuteNonQuery("過程名", CommandType.StoredProcere, null); 不懂的話請繼續說,謝謝採納
⑹ asp.net 存儲過程怎麼用
cmd.Parameters.Add("@存儲過程參數", SqlDbType.VarChar).Value = 值 //普通輸入參數
cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;//為存儲過程增加返回值參數.
或者為存儲過程增加輸出參數
cmd.Parameters.Add("@存儲過程參數", SqlDbType.VarChar);
cmd.Parameters["@存儲過程輸出參數"].Direction = ParameterDirection.Output;
然後
cmd.ExecuteNonQuery();
int retVal = (int)cmd.Parameters["@RETURN_VALUE"].Value;
或者
int retVal = (int)cmd.Parameters["@存儲過程輸出參數"].Value;//假設這個參數是整數.
⑺ 關於asp.net調用存儲過程寫資料庫的問題
出現這種情況可能是變數的長度設置,你在代碼里已經有設置,就檢查一下你的存儲過程的變數定義是否設置長度 如 @uname VarChar (50)
在不成就可能是你表中定義的問題
⑻ asp.net三層+調用存儲過程問題
1.string tablename就說形參,程序中是存在DataSet ds內的DataTable的名稱,可以為任意內容,就是說適配器m_sqlda將獲取的數據注入了ds中的tablename數據表中。
2.下面是我寫的一個直接填充數據集的例子,你應該能看懂
SqlConnection conn = new SqlConnection(GetConnectionString.conn());
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcere; //指定執行存儲過程操作
cmd.CommandText = "STDEquGroup"; //存儲過程名稱
SqlDataAdapter da = new SqlDataAdapter(cmd); //定義一個數據適配器
DataSet DataSet2 = new DataSet(); //定義一個數據集
da.Fill(DataSet2); //填充數據集
DataTable dt = DataSet2.Tables[0]; //取數據集中的表進行操作
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["StrName"].ToString();
tn.Value = dr["IDCode"].ToString();
}
conn.Close();
3.所有存儲過程:假定所操作資料庫為aaa,表為bbb:
USE [aaa]
GO
CREATE PROCEDURE [dbo].[Select_MaxId]
AS
SELECT MAX(Id) FROM [bbb]
END
格式都類似,最後一句寫AS後寫sql查詢語句
中間PROCEDURE後為存儲過程名
最開始USE後為使用的資料庫名
如還有問題可HI我
⑼ asp.net中如何使用存儲過程
存儲過程是在資料庫裡面建立的,可用視圖方式,可以用執行語句
如在SQL裡面建立一個查詢表tb_Name的信息的通過表的主鍵T_ID存儲過程為
CREATE PROCEDURE p_Name --存儲過程名
@T_ID int
AS
SELECT * FROM tb_Name WHERE T_ID=@T_ID
這ASP.NET中執行的的時候存儲過程於連接sql2005為例
我直接寫執行的這部分代碼
就是
public DataTable SelectInfo(int ID)
{
string p_name="p_Name"
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLExpress;Initial Catalog=Fchan;User ID=sa;Password=sa;");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand(p_name, conn);
cmd.CommandType = CommandType.StoredProcere;//這是告訴程序這是執行存儲過程
SqlParameter Parameter = new SqlParameter("@T_ID",SqlDbType.Int);
Parameter.value=ID;
cmd.Parameters.Add(Parameter);
DataTable table = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(table);
conn.Close();
return table;
}
這裡面沒有處理異常你可以加。