风之语者

博客园 首页 新随笔 联系 订阅 管理

2011年7月4日 #

摘要: 表结构ProductCategoryCategoryID,Level,ParentCategoryID数据1,1,-12,1,-13,2,14,3,35,2,26,4,5T-SQLWITH CategoryTemp(CategoryID,ParentCategoryID)--临时表用来保存查到的Category( SELECT CategoryID,ParentCategoryID FROM ProductCategory WHERE ParentCategoryID<=0--将所有的第一层查出来作为初始数据,需要查第几层或者哪个ParentCategoryID下面所有的N层,把Pare 阅读全文
posted @ 2011-07-04 15:47 风之语者 阅读(594) 评论(0) 推荐(0) 编辑

摘要: 这是一个很恶心的方法,从工具栏上拖一个checkbox控件出来,放在checkboxcolumn的列头,看起来就像datagridview的一部分一样,当然,位置得琢磨准,然后把checkboxcolumns的宽度固定,前面的列和它都无法拉动它的宽度,不然一拉就露陷了。如果是动态生成checkboxcolumn,那这个方法无视好了。 阅读全文
posted @ 2011-07-04 09:47 风之语者 阅读(808) 评论(0) 推荐(0) 编辑

2011年7月1日 #

摘要: 今天使用HttpWebRequest类访问Web Service一直报“500服务器端错误”,一看Web Service可以正常访问没有问题,构造HttpWebRequest的参数也齐全,弄了半天终于发现,原来是Method的"post"小写了,改成大写"POST"就没问题了,不过也总结出一条经验,以后访问服务器发现"500服务器端错误",如果服务器端没有问题,就要仔细检查客户端的请求格式有没有问题。 阅读全文
posted @ 2011-07-01 14:26 风之语者 阅读(956) 评论(0) 推荐(0) 编辑

2011年6月29日 #

摘要: 在.net下进行网络编程其实也相对比较简单,因为在.net类库已经提供了大量封装好的类。在.net下网络编程比较底层的类是System.Net.Sockets.Socket类,这个类提供了丰富的方法和属性,并且还提供了异步数据传输支持。对Socket类做一个简单的介绍,它有如下常见方法:public Socket Accept ():为新建连接创建新的 Socket。public void Bind (EndPoint localEP):使 Socket 与一个本地终结点相关联。public void Close ():关闭 Socket 连接并释放所有关联的资源。注意这个方法有冲载方法。pu 阅读全文
posted @ 2011-06-29 11:02 风之语者 阅读(1214) 评论(0) 推荐(0) 编辑

2011年6月28日 #

摘要: 1.代码可维护性SQL是结构化查询语言,其主要目的是用来进行查询,业务逻辑和编程不是它的主要任务,如果硬要用SQL完成复杂的业务逻辑编程,其结果就是整个存储过程复杂无比(相对于例如c#等编程语言),谁见谁头疼。2.开发效率很明显,没有比较好的SQL的编程框架。3.性能难以扩展当把业务逻辑整合到存储过程中,相对于只吞吐数据的数据库服务器负载增加不小,为何不把业务逻辑的性能消耗放到另外一台机器上呢。当这台业务逻辑服务器负载不能承受时,可以很轻松的继续添加逻辑服务器来分担负载(相对于添加数据库集群,而且数据实时同步又是一个很大的性能消耗)。这样可以做到尽量少的数据服务器去满足尽量多的业务负载。当然存 阅读全文
posted @ 2011-06-28 11:52 风之语者 阅读(1174) 评论(13) 推荐(0) 编辑

2011年6月25日 #

摘要: 语法:sp_depends '#存储过程名称'返回:name - 表名 type - 类型(表,视图或者其他) updated - 操作类型是否为更新或者插入或者删除(yes/no) selected - 是否为查询操作(yes/no) columns - 相关的列名 阅读全文
posted @ 2011-06-25 11:38 风之语者 阅读(862) 评论(0) 推荐(0) 编辑

摘要: C = CHECK 约束D = 默认值或 DEFAULT 约束F = FOREIGN KEY 约束L = 日志FN = 标量函数IF = 内嵌表函数P = 存储过程PK = PRIMARY KEY 约束(类型是 K)RF = 复制筛选存储过程S = 系统表TF = 表函数TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图 阅读全文
posted @ 2011-06-25 11:31 风之语者 阅读(334) 评论(0) 推荐(0) 编辑

2011年6月22日 #

摘要: DECLARE cursor1 CURSOR FORSELECT * FROM @tb1--打开游标OPEN cursor1--获取数据,游标下移一行FETCH NEXT FROM cursor1 INTO @id, @xm--检测获取数据是否成功WHILE @@fetch_status=0BEGIN --显示通过游标赋值的变量PRINT STR(@id) + '-' + @xm--游标继续下移 FETCH NEXT FROM cursor1 INTO @id, @xmEND--关闭游标CLOSE cursor1--释放游标Deallocate cursor1 阅读全文
posted @ 2011-06-22 11:31 风之语者 阅读(325) 评论(0) 推荐(0) 编辑

2011年6月21日 #

摘要: 在C#字符串中查找字符有indexof方法,那么在T-SQL与之相对应的是CHARINDEX方法,其语法为CHARINDEX(要查找的字符,字符串),返回一个数字。CHARINDEX(',','aaa,bbb')返回结果:4 阅读全文
posted @ 2011-06-21 14:08 风之语者 阅读(5190) 评论(0) 推荐(0) 编辑

摘要: 示例表 tb 数据如下id value—————1 aa1 bb2 aaa2 bbb2 ccc第一种Sql代码SELECTid,[val]=(SELECT[value]+','FROMtbASbWHEREb.id=a.idFORXMLPATH(''))FROMtbASa 第一种显示结果 1 aa,bb, 1 aa,bb, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc,第二种Sql代码SELECTid,[val]=(SELECT[value]+','FROMtbASbWHEREb.id=a.idFORXML 阅读全文
posted @ 2011-06-21 14:03 风之语者 阅读(304) 评论(0) 推荐(0) 编辑

2011年6月20日 #

摘要: T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了。这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查询,或者其他SQL不便实现的功能。这个随笔中将介绍在SQL Server中扩展C#程序实现正则表达式的替换功能。新建一个类库程序命名为Regex,打开Visual Studio 2008,点击File,点击New,点击Project,在弹出的New Project对话框中选择Class Library,项目名称为Regex。将项目中的类Class1命名为Regex,在这个类中写入如下代码:usin 阅读全文
posted @ 2011-06-20 17:58 风之语者 阅读(682) 评论(0) 推荐(1) 编辑

摘要: 暴力画上去一个checkbox以后并不一定需要用它自定义的checkbox选中状态改变事件,我们还可以用DataGridView的ColumnHeaderClick事件去做这个效果,这样的编程风格更符合Winform开发的风格。View Code private void dgvDateGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e){ if (e.ColumnIndex == dgvDataGridView.Columns["Checked"].Index)// 阅读全文
posted @ 2011-06-20 17:30 风之语者 阅读(591) 评论(0) 推荐(1) 编辑

摘要: 今天程序老是后台运行在某处就自动停止了(查询数据查到一半就说查完了),弄了半天发现原来是中途报错了,但是BackgroundWorker没有抛出异常。导致看起来一切正常,但是数据就是不对。悲剧啊,为什么不抛出异常,错了没关系啊,你说出来啊,为什么不告诉我....... 阅读全文
posted @ 2011-06-20 16:54 风之语者 阅读(385) 评论(3) 推荐(0) 编辑

摘要: DataGridView中没有中有checkboxcolumn,但是该column不是checkbox的列头,这让人很郁闷,关于这个问题有3种解决方法,这里介绍一种比较暴力的方法,手画checkboxcolumnheader.View Code #region datagridview列头加checkbox public class DatagridViewCheckBoxHeaderCell : DataGridViewColumnHeaderCell { Point checkBoxLocation; Size checkBoxSize; bool _checked = false; Po 阅读全文
posted @ 2011-06-20 14:27 风之语者 阅读(1801) 评论(1) 推荐(1) 编辑