(
@tblName nvarchar(2000)='',/*要显示的表或多个表的连接*/
@fldName nvarchar(800) = '*', /*要显示的字段列表*/
@pageSize int = 15, /*每页显示的记录个数*/
@page int = 1,/*要显示那一页的记录*/
@pageCount int = 1 output,/*查询结果分页后的总页数*/
@Counts int = 1 output, /*查询到的记录数*/
@fldSort nvarchar(200) = null,/*排序字段列表或条件*/
@Sort int = 0,/*排序方法,0为升序,1为降序(如果是多字段:SortA Asc,SortB Desc,SortC */
@strCondition nvarchar(3500) ='', /*and 1=1*/
@ID nvarchar(150),/*主表的主键*/
@Dist int = 0 /*是否添加查询字段的 DISTINCT 默认0不添加/1添加*/
)
AS
begin
declare @Sqltxt nvarchar(4000),@Sqltxt1 nvarchar(2000),@Sqltxt2 nvarchar(4000)
Declare @FSortType nvarchar(5),@SqlSelect nvarchar(50),@SqlCounts nvarchar(50)
if @Dist = 0
begin
set @SqlSelect = 'select '
set @SqlCounts = 'Count(*)'
end
else
begin
set @SqlSelect = 'select distinct '
set @SqlCounts = 'Count(DISTINCT '+@ID+')'
end
if @Sort=0 set @FSortType=' ASC'else set @FSortType=' desc'
set @Sqltxt1 ='select @Counts='+@SqlCounts+' FROM '+@tblName+' where (1>0) ' + @strCondition
exec sp_executesql @Sqltxt1,N'@Counts int out ',@Counts out
declare @tmpCounts int
if @Counts = 0 set @tmpCounts = 1 else set @tmpCounts = @Counts
set @pageCount=(@tmpCounts+@pageSize-1)/@pageSize/*取得分页总数 大于总页数显示最后一页*/
if @page>@pageCount
set @page=@pageCount
set @Sqltxt2='('+@SqlSelect+' top 100 percent '+@fldName+',ROW_NUMBER() OVER(ORDER BY '+@fldSort+@FSortType+') AS RowID from '+@tblName+' where 1=1 ' + @strCondition+' order by RowID) TBA'
set @Sqltxt='select * from '+@Sqltxt2+' where RowID between '+CAST(@pageSize*(@page-1)+1 as varchar(10))+' and '+CAST(@pageSize*@page as varchar(10))+' ORDER by RowID'
print @Sqltxt
exec (@Sqltxt)
end
GO
望采纳.通用分页查询语句,自己数据库拷的
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。
执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
Sql数据库连接参考示例
public void 数据集测试(){
//(1.连接)建立到数据库的 连接 conn
SqlConnection conn = new SqlConnection()
conn.ConnectionString = @"Data Source = (LocalDB)\MSSQLLocalDB AttachDbFilename = J:\数据库\SQLDB\NewDB.mdf Integrated Security = True Connect Timeout = 5"
//(2.打开)
conn.Open()
string 表名 = "Users"
using (conn)
{
//(3.适配)适配器 da 和 数据集 ds
da = new SqlDataAdapter()
ds = new DataSet("DataSet1")
//var dt = new DataTable()
//ds.Tables.Add(dt)
//(4.Select命令)填充命令 cmd
da.SelectCommand = new SqlCommand(@"select * from " + 表名)
//(5.Fill到数据集)
da.Fill(ds, 表名)
}
//(6.释放资源)
conn.Close()
conn.Dispose()
//访问数据集中的表
DataTable myTable = ds.Tables[表名]
foreach (DataRow myRow in myTable.Rows)
{
foreach (DataColumn myColumn in myTable.Columns)
{
Console.WriteLine(myRow[myColumn]) //遍历表中的每个单元格
}
}
//修改数据
foreach (DataRow row in myTable.Rows)
{ row["name"] = row["name"] + "备份" }
// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(da)
da.Update(ds, 表名)
//注意:在修改、删除等 *** 作中表必须定义主键,select的字段也必须包含主键,
//否则会抛出异常“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。”
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)