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(); //获取输出参数的值
获取输出参数的值的时候可以根据需要进行类型转换