最新评论
全轩 2011-12-30 12:17
神那,这是你的问题好不好啊!
Parameter 防止注入的意思是,每个需要用到的栏位都是一个单独的Parameter.这样是不会出现注入的问题.
是你的想法错了,你在程序里面拼接字符串了啊!你要是不拼接字符串他能注入? 很神奇的想法 !
cxlings 2011-07-27 11:39
(useCache) Cache2.Insert(cacheKey, list, cacheSeconds);
jil1 2011-06-03 09:10
catch {} finally{ } System.Runtime.InteropServices.Marshal.ReleaseComObject(objMail); objMail = null;
不能保证释放吧?
蔡探长 2011-01-09 21:13
你确定你这个能分页??测试sql如下:
Northwind库产品表
----------------------------
declare @a1 int,@a2 int
exec [getPagerTopMAX] 'Products','ProductID',3,10,'*','ProductID',0,'',1,@a1 output,@a2 output
也就测试单表,主键id增长,能分个鬼啊
熊哥 2010-12-08 17:23
@ad-hoc
[quote]ad-hoc:
public static bool IsDate(this string DateStr)
{
try
{
DateTime _dt = DateTime.Parse(DateStr);
return true;
}
catch
{
return false;
}
}
感觉这样不太好,因为catch exception的成本太高
这样比较好一点
public static bool IsDate(this string DateStr)
{
return DateTime.TryParse(DateStr,out _dt);
}
[/quote]
呵呵,可以直接用正则。
^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$
ad-hoc 2010-12-07 22:27
public static bool IsDate(this string DateStr)
{
try
{
DateTime _dt = DateTime.Parse(DateStr);
return true;
}
catch
{
return false;
}
}
感觉这样不太好,因为catch exception的成本太高
这样比较好一点
public static bool IsDate(this string DateStr)
{
return DateTime.TryParse(DateStr,out _dt);
}
fanly11 2010-11-10 14:41
[quote]Arthas-Cui:
4, 防另存为
解决方法:
* <NOSCRIPT><IFRAME SRC="*.html"></IFRAME></NOSCRIPT>
什么意思?[/quote]
其实没必要怎么麻烦。。只要到CSS文件中加@import url("*.css");
可以不管怎么样火狐还是能另存为的。
熊哥 2010-11-10 13:06
[quote]fanly11:
居然无意之间访问到你的站。。
正确写法:string s = string.Empty; for (int i = 1; i < 10; i++) { s = i.ToString(); }
StringBuilder sb=new StringBuilder;for(int i=1;i<10;i++){ sb.Append(i.ToString());}
应该这样吧。。
其实对于中型企业的数据架构来说优化SQL,sql语句应该是从下往上从右往左执行的,所以建了索引的字段,查询的时候应该放到右边。。如果非要用到left join,right join, 尽量把主表的数据筛选到最少。
其实还可以利用表分区的形式进行优化,或者数据分区的形式。。
就比如可以这样。。
select a,b,c from
Database.dbo.table
union all
select a,b,c from
Database.dbo.table
[/quote]
嗯 说的很对。
fanly11 2010-11-10 11:39
[quote]lykyl的自留地:
"IIS日志每天可生成1G IO操作太平凡,出错可以在系统日志里查."
对外服务的网站日志是必须要有,以备日后入侵检测以及安全分析用。日志文件每天1GB,日均PV估计在8W以内,开日志影响不大。[/quote]
说的不错。。但是我觉得还应该多一个网站错误日志。。可以跟踪网站的稳定性
fanly11 2010-11-10 11:32
居然无意之间访问到你的站。。
正确写法:string s = string.Empty; for (int i = 1; i < 10; i++) { s = i.ToString(); }
StringBuilder sb=new StringBuilder;for(int i=1;i<10;i++){ sb.Append(i.ToString());}
应该这样吧。。
其实对于中型企业的数据架构来说优化SQL,sql语句应该是从下往上从右往左执行的,所以建了索引的字段,查询的时候应该放到右边。。如果非要用到left join,right join, 尽量把主表的数据筛选到最少。
其实还可以利用表分区的形式进行优化,或者数据分区的形式。。
就比如可以这样。。
select a,b,c from
Database.dbo.table
union all
select a,b,c from
Database.dbo.table
熊哥 2010-11-02 09:00
@zeus2
[code=csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection.Emit;
using System.Data;
using System.Reflection;
namespace Pub.Class {
public class IDataReaderEntityBuilder<Entity> {
private static readonly MethodInfo getValueMethod = typeof(IDataRecord).GetMethod("get_Item", new Type[] { typeof(int) });
private static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod("IsDBNull", new Type[] { typeof(int) });
private delegate Entity Load(IDataRecord dataRecord);
private Load handler;
private IDataReaderEntityBuilder() { }
public Entity Build(IDataRecord dataRecord) { return handler(dataRecord); }
public static IDataReaderEntityBuilder<Entity> CreateBuilder(IDataRecord dataRecord) {
IDataReaderEntityBuilder<Entity> dynamicBuilder = new IDataReaderEntityBuilder<Entity>();
DynamicMethod method = new DynamicMethod("IDataReaderDynamicCreateEntity", typeof(Entity), new Type[] { typeof(IDataRecord) }, typeof(Entity), true);
ILGenerator generator = method.GetILGenerator();
LocalBuilder result = generator.DeclareLocal(typeof(Entity));
generator.Emit(OpCodes.Newobj, typeof(Entity).GetConstructor(Type.EmptyTypes));
generator.Emit(OpCodes.Stloc, result);
for (int i = 0; i < dataRecord.FieldCount; i++) {
PropertyInfo propertyInfo = typeof(Entity).GetProperty(dataRecord.GetName(i));
Label endIfLabel = generator.DefineLabel();
if (propertyInfo != null && propertyInfo.GetSetMethod() != null) {
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
generator.Emit(OpCodes.Callvirt, getValueMethod);
generator.Emit(OpCodes.Unbox_Any, propertyInfo.PropertyType);
generator.Emit(OpCodes.Callvirt, propertyInfo.GetSetMethod());
generator.MarkLabel(endIfLabel);
}
}
generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ret);
dynamicBuilder.handler = (Load)method.CreateDelegate(typeof(Load));
return dynamicBuilder;
}
}
}
[/code]
混世者 2010-09-20 14:57
不错的代码质量和思路,队列实现多线程发邮件,保证速度和发件质量,希望能将相关的代码都放出来看,否则需要拼凑猜测,比如EC_EmailFactory生成EC_EmailList和EC_EmailList的定义之类的

