netsql存儲過程
沒必要返回總頁數啊,總頁數可以計算得來的。
其他的就是傳幾個參數而已 ,
這是我的一個,大概類似,
public class PageSelect
{
public PageSelect()
{
//
// TODO: Add constructor logic here
//
}
private string _tbName;//table name
public string TbName
{
get { return _tbName; }
set { _tbName = value; }
}
private string _FieldKey;//primary keys
public string FieldKey
{
get { return _FieldKey; }
set { _FieldKey = value; }
}
private int _pageCurrent=1;//Current Page
public int PageCurrent
{
get { return _pageCurrent; }
set { _pageCurrent = value; }
}
private int _pageSize=10;//page Size
public int PageSize
{
get { return _pageSize; }
set { _pageSize = value; }
}
private string _filedShow="";//which filed you want to show in you pages
public string FiledShow
{
get { return _filedShow; }
set { _filedShow = value; }
}
private string _filedOrder="";//which filed you want to order by;
public string FiledOrder
{
get { return _filedOrder; }
set { _filedOrder = value; }
}
private string _constraints="";//some Constraints you want to config
public string Constraints
{
get { return _constraints; }
set { _constraints = value; }
}
}public static DataTable getdata(PageSelect page,int current)
{
SqlConnection conn = connection.createSqlconnection("");
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandType = CommandType.StoredProcere;
cmd.CommandText = "sp_PageView";
cmd.Parameters.Add("@tbname", SqlDbType.VarChar).Value = page.TbName;
cmd.Parameters.Add("@FieldKey", SqlDbType.VarChar).Value = page.FieldKey;
cmd.Parameters.Add("@PageCurrent", SqlDbType.Int).Value = current;
cmd.Parameters.Add("@PageSize", SqlDbType.Int).Value = page.PageSize;
cmd.Parameters.Add("@FieldShow", SqlDbType.VarChar).Value = page.FiledShow;
cmd.Parameters.Add("@FieldOrder", SqlDbType.VarChar).Value = page.FiledOrder;
cmd.Parameters.Add("@Where", SqlDbType.VarChar).Value = page.Constraints;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
return dt;
}
② asp.net sql的存儲過程
簡單添刪改查沒必要用存儲過程。存儲過程一般是資料庫完成後再按需要添加,一般不會做一點寫一點。如果改欄位的話那麼改的是SQL語句而不是存儲過程。只不過要改存儲過程裡面的SQL語句要重寫存儲過程。
至於用一個存儲過程對應多個表想要的內容。需要保證表之間的相似性。其實如果你能做到不同表的查詢是修改一個欄位的話那麼就可以實現你的想法。
不要意味著追求著存儲過程。當然據說存儲過程可以加快速度。如果的確這樣的話,那麼對於經常用到的操作。比如網路上很多用戶經常用到的查詢可以用存儲過程。我說的不一定對。因為我還沒真正的開發經驗。
③ .net用sql語句執行存儲過程報錯找不到存儲過程
你換一種寫法咯,你可以這樣寫
cmd.parameters.add(new sqlparameter("name",sqldbtype.varchar,10));
然後這樣寫
cmd.parameters["name"].value = "";
然後
cmd.commandtext = "存儲過程名字,不要exec";
cmd.commandtype = commandtyep.storedprocere
cmd.executenonquery()
這樣子保證OK,如果還有問題的話找我好了
④ 在.net編程中使用sql中的函數和使用sql中的存儲過程哪個更好點
在關系數據中,查詢語句需要先經過優化和編譯才能執行,對存儲過程的調用可以省去優化和編譯的過程,故而執行上稍微快一些。不過存儲過程的作用不止如此,可以使用復雜的擴展sql語法完成復雜的查詢。不過是和資料庫相關的,mssql和oracle的sql擴展語法是不能通用的。
⑤ 在.NET中執行SQL存儲過程,以下兩種方式為什麼第二種好一些
2樓正解。
但是使用第一種方法也可以避免SQL注入攻擊。
比如登陸的時候,我在文本框里輸入 'or true'
就是在將參數傳遞到拼接SQL語句前【業務層處理這個也不錯】,將一些比如 , ' "" 等符號過濾。
無論如何,推薦使用第二種。
強烈的。
⑥ 在asp.net(c#)中如何用sql語句調用伺服器端的存儲過程
如果已知了
伺服器端
有你需要的
存儲過程
,則第一步需要使你的程序和伺服器先建立起連接,連接成功之後可以寫一個
sql語句
:exec
存儲過程名(不帶參的存儲過程)就行了,當然這些可以在你的程序里寫也可以在你的程序里寫語句用來調用完成上述sql語句的存儲過程名即把上面的exec
存儲過程名
封裝在另一個存儲過程里,在程序里通過.net
里的
sqlcommand
和
sqlconnection
類來實現完成上面所述的語句
⑦ asp.net sql 存儲過程的使用
都可以做參數,問題出在update @tablename set hitcount=hitcount+1 where id=@id 上面,在update後面不能跟變數,你最好把這整過SQL語句作為參數船給存儲過程,在存儲過程中執行這個SQL,或者你在程序中把 UPDATE TABLENAME 作為參數傳遞.
⑧ asp.net 怎樣使用SQL存儲過程
----------------------創建存儲過程------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[procName]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[procName] --判斷資料庫中是否已經存在procName存儲過程,如果存在就刪除
create procere procName --創建一個帶參數和返回值的存儲過程
@id int --參數
AS
declare @TempID int --定義變數
select @TempID = count(1) FROM [user] WHERE [id] = @id --給變數賦值
if @TempID = 0 --如果該數據存在返回1,不存在返回0
return 0
else
return 1
----------------------調用存儲過程------------------------
/// <summary>
/// 是否存在該記錄
/// </summary>
public bool Exists(int ID)
{
int rowsAffected;
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.Int,4)
};
parameters[0].Value = ID;
int result= DbHelperSQL.RunProcere("procName",parameters,out rowsAffected);
if(result==1)
{
return true;
}
else
{
return false;
}
}
⑨ .NET+SQL2000存儲過程
-------------------建表------------------
CREATE TABLE [tab_cJ] (
[id] [int] IDENTITY (1, 1) NOT NULL PRIMARY KEY,
[name] [varchar] (50) ,
[age] [int] NULL ,
[info] [varchar] (200)
)
------------------建存儲過程-------------------------
CREATE PROCEDURE QueryInfoByName
@name varchar(50),
@age int
AS
select info from tab_cj where [name]=@name and age=@age
GO
--------------------調用-------------------------------
protected void GetInfoByName(string txt_name, int txt_age)
{
SqlConnection conn = new SqlConnection("server=localhost;database=dbDemo;uid=sa");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcere; //指定執行存儲過程操作
cmd.CommandText = "QueryInfoByName"; //存儲過程名稱
//對應存儲過程QueryInfoByName的第一個參數@name
SqlParameter parName = new SqlParameter("@name", SqlDbType.VarChar, 50);
//指定參數@name要轉入的值
parName.Value = txt_name;
//對應存儲過程QueryInfoByName的第二個參數@age
SqlParameter parAge = new SqlParameter("@age", SqlDbType.Int);
//指定參數@age要轉入的值
parAge.Value = txt_age;
//這一步非常重要,一定將設置好的兩個參數類型添加到Command對象的參數集合里
cmd.Parameters.Add(parName);
cmd.Parameters.Add(parAge);
//方式一,查詢回來的結果需要顯示在DataGrid之類的控制項上
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds);
//方式二,按單個值讀取
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Response.Write(reader.GetString(0));
}
}
conn.Close();
}
⑩ .net中 關於sql2000存儲過程
SqlConnection _scon = new SqlConnection();
_scon.ConnectionString = "Data Source=.;Initial Catalog=資料庫名;User Id=sa;Password=";
_scon.Open();
SqlCommand _scom = _scon.CreateCommand();
_scom.CommandType = CommandType.StoredProcere;
_scom.CommandText = "Card_Transfer"; //存數過程名稱
_scom.Parameters.Add("@fromCardId", SqlDbType.VarChar).Value = fromCardId; //@fromCardId 參數名, SqlDbType.VarChar 參數類型,同時為輸入參數賦值。
_scom.Parameters.Add("@Balance", SqlDbType.Money); //@Balance 參數名,SqlDbType.Money 參數類型
_scom.Parameters["@Balance"].Direction = ParameterDirection.Output; //將@Balance參數設置為輸出參數
_scom.ExecuteNonQuery(); //執行存儲過程
string balance = _scom.Parameters["@Balance"].Value.ToString(); //獲取輸出參數的值
獲取輸出參數的值的時候可以根據需要進行類型轉換