public class news
{
SqlDB.SqlDB sqldb = new SqlDB.SqlDB();
private int _id;
private string _strTitle;
private string _strContent; public int id
{
get { return _id; }
set { _id = value; }
}
public string strTitle
{
get { return _strTitle; }
set { _strTitle = value; }
}
public string strContent
{
get { return _strContent; }
set { _strContent = value; }
} public bool add()
{
string sql = "insert into t_n_news(strTitle,strContent) values('" + _strTitle + "','" + _strContent + "') ";
int n = sqldb.execNon(sql);
if (n > 0)
{
return true;
}
return false;
}
public class news
{
public static void add(string title,string content)
{
sqldb.sqlExecute(insert into t_n_news(title,content)values('"+title+"','
"+content+"') );
}
}
解决方案 »
- vs2010 水晶报表rpt文件无法识别 显示16进制码
- 求简单的ASP.NET下载代码
- 请问各位高手,Discuz!NT 3.6.711,如何解决“所见即所得”模式下无法编辑已发布帖子
- 面试题! String s=new String("XYZ")请问创建几个对象?
- 从哪里能进入Web Site Administration Tool ?
- 感觉ASPX速度相当慢
- 关于GridView1绑定 URL重写
- 在asp.net中如何调用dll和web控件(不是用户控件)
- 有关ASP程序 通过串口控制单片机的!
- 请问使用html控件,如果在电击旁边的的一个符号后在html控件的文本框中得到这个符号???急
- GridView问题显示?????
- 求简易查看数据库结构的方法
public bool add()
{
string sql ="insert into t_n_news(strTitle,strContent) values('{0}','{1}')";
sql=string.Format(sql,_strTitle,_strContent);
int n = sqldb.execNon(sql);
if (n > 0)
{
return true;
}
return false;
}
最好使用SqlParameter
第一中也是大家通常采用的一种方法,从学编程起,我们就喜欢这样,如果一个类里面没有字段跟属性的话,我们觉得有点不舒服。
通常情况下:
如果反复要实例化一个类的话,我们不如采用后者,直接用类调用静态方法,很方便,而且性能也高一点
如果实例化不多的话,还是建议前者,
如果一个类有很多字段的时候,最好将业务逻辑,将业务实体分开,定义为两个类,
一个定义其属性跟字段,也就是实体类了
一个定义其方法,对这些属性和字段进行操作
举个里子:
我们定义一个StudentInfo类里面可以定义一些姓名,年龄,班级等等
定义一个Student类进行一些增加,删除,和修改操作
{
return true;
}
return false;
这里改成return (n > 0);比较好.
/// <summary>
/// 发送Email记录
/// </summary>
/// <param name="mode"></param>
/// <returns></returns>
public int Add(Model.User_Email mode)
{
StringBuilder sb = new StringBuilder();
sb.Append("insert into User_Email(User_Guid,Email_Title,Email_Addressee,Email_Sender,Email_Time,Email_Content,Email_Flag,Email_Status)");
sb.Append("values(@User_Guid,@Email_Title,@Email_Addressee,@Email_Sender,@Email_Time,@Email_Content,@Email_Flag,@Email_Status)");
sb.Append(";select @@IDENTITY");
SqlParameter[] parameter =
{
new SqlParameter("@User_Guid",SqlDbType.VarChar,50),
new SqlParameter("@Email_Title",SqlDbType.VarChar,50),
new SqlParameter("@Email_Addressee",SqlDbType.VarChar,50),
new SqlParameter("@Email_Sender",SqlDbType.VarChar,50),
new SqlParameter("@Email_Time",SqlDbType.DateTime),
new SqlParameter("@Email_Content",SqlDbType.Text),
new SqlParameter("@Email_Flag",SqlDbType.Int,4),
new SqlParameter("@Email_Status",SqlDbType.Int,4),
};
parameter[0].Value = mode.User_Guid;
parameter[1].Value = mode.Email_Title;
parameter[2].Value = mode.Email_Addressee ;
parameter[3].Value = mode.Email_Sender;
parameter[4].Value = mode.Email_Time;
parameter[5].Value = mode.Email_Content;
parameter[6].Value = mode.Email_Flag;
parameter[7].Value = mode.Email_Status;
object obj = DbHelperSQL.GetSingle(sb.ToString(), parameter);
if (obj == null)
{
return 1;
}
else
{
return Convert.ToInt32(obj);
}
}
1.是调用者可以使用ide环境的智能提示完成代码编写,
2是强类型,在传递参数时候可以规定可以传啥,不可以传啥,比如int id他就只能传数字,而不能是字符了
3.是这种写法可以在ide环境直接重构成接口,为以后更改保留余地
那就不要括号return n>0;
由于这个类别,是中间层的类别,是作继承父类或是实作接口来处理这个类别的逻辑.
而不是如同lz一样,去New一个父类来实作.
如果是很复杂的系统那么两种都不合适,既然类叫news那么代表它是个实体类,第一种职责分散了,而第二种静态方法显然不适合放在这个类里。