如题:大家投票一下自己 如何操作数据库?
注意自己的素养,请不要鄙视任何人的做法。1.硬编码模式,自己动手写ADO.NET对象的使用,自己写sql语句。SqlCommand cmd = new SqlCommand("select * from student", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
stu = new Student();
stu.Name = (string)reader["name"];
}
2.自己不写,用工具生成,如使用模版。但这总方式的结果还是回到了1.硬编码。
请说明使用哪种模版生成器。3.使用封装的数据库访问框架,比如NHibernate,使用方法进行简单CRUD操作。
请说明你用那个框架。4.数据库是做什么用的?
注意自己的素养,请不要鄙视任何人的做法。1.硬编码模式,自己动手写ADO.NET对象的使用,自己写sql语句。SqlCommand cmd = new SqlCommand("select * from student", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
stu = new Student();
stu.Name = (string)reader["name"];
}
2.自己不写,用工具生成,如使用模版。但这总方式的结果还是回到了1.硬编码。
请说明使用哪种模版生成器。3.使用封装的数据库访问框架,比如NHibernate,使用方法进行简单CRUD操作。
请说明你用那个框架。4.数据库是做什么用的?
解决方案 »
- java的 C#中的问题!
- Convert.ToBase64String(Encoding.Unicode.GetBytes(userName))
- .net中如何获取被调用程序的执行结果
- 分享我的小软件1(bing背景提取)
- winform控件无操作判断
- 如何自定义一个存储数据文件
- 这样申明有什么意思:“父类 变量 = new 父类的派生类”
- crystal report 运行总计字段
- 软件发布 -- 生成器
- 如何把源表中每一行数据复制到目的表中,而使目的表的行状态RowState为Added?
- 这个问题该咋办啊?部分代码如下,在线等
- 请问C#执行SQL脚本文件,脚本中某些参数,需要用户输入时,怎么处理呢?
动软代码生成器
codesmith
框架spring.net,LINQ,NHibernate
ORM
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合
[System.ComponentModel.DataObject]
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select, true)]
然后自己再写modelusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Model
{
public class Users
{
private int id;
private string name;
private string password;
private string realname;
private string lastip;
private DateTime lastvisit;
private int times;
private int group;
private string email;
private string phone; public int ID
{
get
{
return id;
}
set
{
id = value;
}
} public string Name
{
get
{
return name;
}
set
{
name = value;
}
} public string Password
{
get
{
return password;
}
set
{
password = value;
}
} public string Realname
{
get
{
return realname;
}
set
{
realname = value;
}
} public string Lastip
{
get
{
return lastip;
}
set
{
lastip = value;
}
} public DateTime Lastvisit
{
get
{
return lastvisit;
}
set
{
lastvisit = value;
}
} public int Times
{
get
{
return times;
}
set
{
times = value;
}
} public int Group
{
get
{
return group;
}
set
{
group = value;
}
} public string Email
{
get
{
return email;
}
set
{
email = value;
}
} public string Phone
{
get
{
return phone;
}
set
{
phone = value;
}
}
}
}
然后再一个操作数据库的类
dataaccess public string AddUser(string Name,string Password,string Realname,int Group,string Email,string Phone )
{
string result = "";
SqlParameter[] MyPara = new SqlParameter[6];
MyPara[0] = new SqlParameter("@Name", Name);
MyPara[1] = new SqlParameter("@Password", Password);
MyPara[2]=new SqlParameter("@Realname",Realname);
MyPara[3]=new SqlParameter("@Group",Group);
MyPara[4]=new SqlParameter("@Email",Email);
MyPara[5]=new SqlParameter("@Phone",Phone);
try
{
SqlHelper.ExecuteNonQuery(SqlStr.xskjConnectString,CommandType.Text,SqlStr.sql_AddUser,MyPara);
result="添加成功!";
}
catch(Exception e)
{
result=e.ToString();
}
return result;
}
public bool UpdateUser(Model.Users users)
{ bool result = false;
SqlParameter[] MyPara = new SqlParameter[6];
MyPara[0] = new SqlParameter("@Password", users.Password);
MyPara[1] = new SqlParameter("@Realname", users.Realname);
MyPara[2] = new SqlParameter("@Group", users.Group);
MyPara[3] = new SqlParameter("@Email", users.Email);
MyPara[4] = new SqlParameter("@Phone", users.Phone);
MyPara[5] = new SqlParameter("@ID", users.ID);
int rs = SqlHelper.ExecuteNonQuery(SqlStr.xskjConnectString, CommandType.Text, SqlStr.sql_UpdateUser, MyPara);
if (rs > 0)
{
result = true;
}
return result;
} public bool DeleteUser(string id)
{
bool result = false;
SqlParameter[] MyPara = new SqlParameter[1];
MyPara[0] = new SqlParameter("@ID", id);
int rs = SqlHelper.ExecuteNonQuery(SqlStr.xskjConnectString, CommandType.Text, SqlStr.sql_DeleteUser, MyPara);
if (rs > 0)
{
result = true;
}
return result;
}
MsSql,MySql,Access
摘部分如下:
private DbHelper()
{
XmlDocument doc = new XmlDocument();
doc.Load("JiuJiu.DbAccess.xml");
XmlElement root = doc.DocumentElement;
XmlNode node = root.SelectSingleNode("/JiuJiu.DbAccess/DbType");
string dataType = node.InnerText;
node = root.SelectSingleNode("/JiuJiu.DbAccess/DbConnections/DbConnection[Name='" + dataType+"']");
string providerName = node["ProviderName"].InnerText;
string connectionString = node["ConnectionString"].InnerText;
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
command = factory.CreateCommand();
command.Connection = connection;
adapter = factory.CreateDataAdapter();
}
只熟悉这个。
数据库是做数据库用的.sqlhelper
Microsoft.Practices.EnterpriseLibrary.Common.dll
Microsoft.Practices.EnterpriseLibrary.Data.dll
Microsoft.Practices.ObjectBuilder2.dll
Microsoft.Practices.Unity.dll
___________________________________
我写的vs2005源代码管理器
http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html
别的自己写sql,调用动软的DbHelperSQL
框架
自己寫。
server2005
因为linq比较针对查询哈,
其他的操作,支持欠佳。
大家说说用的是什么linq啊(听的很别扭)。。还有没有尝试过ADO.NET Entity Framework 的?