《无限级分类》
private void Bindtree(TreeNode treenode, string pid) 代表接受在页面加载传过来的TreeNode
{ pid代表要查询的字段
DataTable dt = Pro_showManager.selectTreeview(pid);
foreach (DataRow rs in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = rs["Name"].ToString();
tn.Value = rs["id"].ToString();
if (pid == "0")
{
TreeView1.Nodes.Add(tn);
}
else
{
treenode.ChildNodes.Add(tn);
}
Bindtree(tn, rs["id"].ToString());
}
}
《在sql里有冗余信息只留一条剩余删除》
select * from Score where ScoreId not in (select max(ScoreId) from dbo.Score group by [Name], Score, GroupId, IP)
delete Score where ScoreId not in (select max(ScoreId) from dbo.Score group by [Name], Score, GroupId, IP)
《插入一条语句返回本次插入的id》
insert into 表名(字段名) values(值。。。。)
select SCOPE_IDENTITY(); --返回本次语句块中插入数据的最后一个自增量ID
insert into 表名(字段名) values(值。。。。)
select @@IDENTITY; --返回整个数据库中插入数据的最后一个自增量ID
《触发器》
-------关键代码------
CREATE TRIGGER trig_delete_transInfo
ON transInfo
FOR DELETE
AS
print '开始备份数据,请稍后......'
IF NOT EXISTS(SELECT * FROM sysobjects
WHERE name='backupTable')
SELECT * INTO backupTable FROM deleted
ELSE
INSERT INTO backupTable SELECT * FROM deleted
print '备份数据成功,备份表中的数据为:'
SELECT * FROM backupTable
GO
《ROW_NUMBER() over(order by id)分页存储过程》
create proc p_存储过程名
@当前页 int,@每页显示多少条 int
as
select * from (select *,ROW_NUMBER() over(order by id) as 排序 drom (表名)) a
where 排序 between (@当前页-1)*@每页显示多少条+1 and @当前页*@每页显示多少条
go
《上传图片》
if (FileUpload1.HasFile)//判断FileUpload1是否为空(返回类型bool)
{
string s = Server.MapPath(".");//得到根目录
string s3 = this.FileUpload1.FileName;//得到添加的文件名
string s2 = s + "/images/" + s3;
this.FileUpload1.SaveAs(s2);//将文件存在服务器
}
《DataSet取值》
DataSet ds=xx;
foreach (DataRow row in ds.Tables[0].Rows) DataRow是DataSet中的一行 ds.Tables[0].Rows表示DataSet很多表 里面的其中的一个
{
string name= row["asda"].ToString(); row["asda"]数据库字段
}
《做批量删除的时候拼接字符串》
create proc p_daleteuserinfo //存储过程名
@username nvarchar(1000)
as
if @username<>'' //判断是否为空以防报错
begin
declare @sql varchar(500) //定义字符串变量
set @sql= 'delete from UserInfo where '@username //把传过来的字符串和变量拼起来
exec(@sql) ////最后执行变量
end
GO
《采集原理》
其实采集并没有什么只是经验少有时有人说 “采集” 有时会误导人
说白了就是: 首先得到一个入口“入口 就是url地址” 通过正则表达式 “(?<=" + (变量)+ ").*?(?=" + (变量)+ ") 就是从什么后开始 到什么时候结束 是开始和结束之间的字符” 能得到您输入的url地址里面的网页所有代码赋给一个字符串,然后在得到这个字符串里面的所有url地址(href=[\\\"[url=]\\\'](http:\\/\\/|\\.\\/|\\/)?\\w+(\\.\\w+)*(\\/\\w+(\\.\\w+)?)*(\\/|\\?\\w*=\\w*(&\\w*=\\w*)*)?[\\\"\\\'[/url]]),放在泛型里面,然后便利泛型调用某方法(方法里要做的事 就是得到 XX内容 XX标题 XX时间 XX什么 得到你想得到的)得到之后再把本网页里面的所有url放到放到泛型里继续便利 一只到不符合条件或者泛型里没有数据为止
|
|