net執行存儲過程
A. .NET執行存儲過程如何得到消息框中的結果
你的資料庫登錄用戶不是SA吧,如果是別從分配的許可權那麼你就沒有修改的許可權,你用SA登錄或者
在資料庫安全性-登錄名中找到你的用戶名-右鍵=屬性-用戶映射-找到你要修改的哪個資料庫
然後按圖把許可權打上勾就行了,這里的設置需要SA來設置
B. ASP.NET中如何執行各種類型的存儲過程
看到這個手寫的類,就知道還是手工作坊的產物。
在實際項目中從不用手寫數據訪問類,用微軟給的,或者用MSORM直接生成,
比這樣手寫,更快,更安全,代碼量更少,調用更方便。
---------------------------
代碼重用目地在於提高生產力,
並不是你寫一個類就永垂不朽了,
而是要在需求有變更的情況下,能夠復用和擴展。
你可以看看.NET裡面的ORM是如何進行代碼復用和擴展的,
觀察一下資料庫結構以及存儲過程改變的情況下,代碼是如何變化的。
事實上,完全不需要手動編碼。
能夠應付更加復雜的應用場景和需求變更,才能提高生產力,才能被稱之為面向對象。
C. 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;
}
這裡面沒有處理異常你可以加。
D. ASP.NET中的資料庫的存儲過程是怎麼執行的
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
namespaceCommon
{
publicclassSQLHelper
{
privatestaticstringconnStr=ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
///<summary>
///執行存儲過程查詢
///</summary>
///<paramname="sp">存儲過程的名字</param>
///<paramname="param">數據</param>
///<returns></returns>
(stringsp,paramsSqlParameter[]param)
{
returnExecuteTable(sp,CommandType.StoredProcere,param);
}
}
}
//請採納
E. Net 執行存儲過程幾種方式的各自的異同和優勢
存儲進程其實就是能完成一定操作的一組SQL語句,只不過這組語句是放在資料庫中的(這里我們只談SQL SERVER)。如果我們通過創建存儲進程以及在調用存儲進程,就可以避免將SQL語句同ASP代碼混雜在一起。這樣做的好處至少有三個:
第一、大大提高效率。存儲進程本身的執行速度非常快,而且,調用存儲進程可以大大減少同資料庫的交互次數。
第二、提高安全性。假如將SQL語句混合在ASP代碼中,一旦代碼失密,同時也就意味著庫結構失密。
第三、有利於SQL語句的重用。
F. net 怎麼使用存儲過程的結果集
執行存儲過程調用的是ADO.net
返回的結果集是一個DataSet對象。 如果不是,請檢查下你的數據連接庫,改下代碼。
如果存儲過程返回的是兩個結果集,那麼返回的DataSet就有兩個DataTable對象。
調用的時候 只需要
DataSet ds=dbHelper.RunProcere("Web_pGetDataPager");//假設的返回dataset對象的執行存儲過程的方法。
ds.Tables[0] 就是第一個結果集
ds.Tables[1] 就是第二個結果集
//弱綁定第二個結果集 就是下面這樣
Datagridview.DataSource=ds.Table[1];
Datagridview.DataBind();
G. vb.net如何使用存儲過程
存儲過程把一個或多個T-SQL語句組合到一個邏輯單元中,在SQL Server資料庫中保存為一個對象。在存儲過程創建後,它的T-SQL定義保存在sys.sql_mole系統目錄視圖中。當存儲過程首次執行的時候,SQL Server創建執行計劃並把它存儲在計劃內存緩存中。然後SQL Server就能對這個存儲過程的後續執行重用計劃。和沒有編譯且沒有準備好的等價即時查詢相比,存儲過程更加快速可靠。還可以創建使用.net公共語言運行時(CLR)程序集的存儲過程。使用存儲過程有很多好處,而沒什麼壞處:幫助在數據層聚集T-SQL代碼。幫助大的即時查詢減少網路流量。促進代碼的可復用性。淡化數據獲取的方法。與視圖不同,存儲過程可以利用劉控制技術、臨時表、表變數等。存儲過程對查詢響應時間的影響比較穩定。存儲過程能作為控制層,排除了直接訪問SQL Server實例和它的資料庫表可能引起的安全隱患。存儲過程能用於多種不同的活動,包括簡單的SELECT、INSERT、UPDATE、DELETE等。T-SQL活動能混合在單個存儲過程中,或者以模塊形式創建存儲過程,為每一個或一組任務創建多個存儲過程。沒有參數的存儲過程的基本語法如下:CREATE PROCEDURE [Schema_name.] procere_nameAS { <sql_statement> [...n ] }帶參數的存儲過程可以接收外部傳入參數多達2100個。語法如下:CREATE {PROC|PROCEDURE} [Schema_name.] procere_name [; number][ { @parameter [ type_schema_name.] data_type } [VARYING ] [=default] [OUT | OUTPUT ] [READONLY] ] [ , ... n][ WITH <procere_option> [ , ... n] ][FOR REPLICATION ]AS {sql_statement> [;] [ ...n] | <method_specifier> }
H. asp.net 如何執行有返回值的存儲過程 通用類
asp.net 執行有返回值的存儲過程:
1、用ParameterDirection.ReturnValue; 返回值
ALTER PROCEDURE [dbo].[CountNumber]
AS
declare @num int
select @num=count(*) from news
return @num
GO
2、用ParameterDirection.Output; 參數返回值
ALTER PROCEDURE [dbo].[CountNumber]
@num int output
AS
select @num=count(*) from news
return @num
GO
3、調用處代碼:
#region 計算出數據表的記錄數
/// <summary>
/// 計算出數據表的記錄數
/// </summary>
/// <returns>記錄數</returns>
public string CountNumber()
{
cmd = new SqlCommand("CountNumber", GetConn());
cmd.CommandType = CommandType.StoredProcere;
SqlParameter i= new SqlParameter("@num", SqlDbType.Int);
//i.Direction = ParameterDirection.Output;
i.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(i);
cmd.ExecuteNonQuery();
//int strReturn = i.Value.ToString(); //返回值--方法1
string num = cmd.Parameters["@num"].Value.ToString();
//返回值--方法2
conn.Close();
return num;
}
#endregion
I. 在.net中如何應用存儲過程
例如:SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
// 設置sql連接
cmd.Connection = sqlconn;
// 如果執行語句
cmd.CommandText = "myprocere";
// 指定執行語句為存儲過程
cmd.CommandType = CommandType.StoredProcere;
SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dp.Fill(ds);
J. asp.net 調用存儲過程
(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)執行一個有參數的存儲過程的代碼如下
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);