未用C#时,习惯于用ADO做软件,但学了C#之后,想用WINFORM做些MIS系统,发现那个ADO已经不知去向了,只有ADO.NET选择,但是又发现ADO.NET做简单的MIS好象很烦以前,一个表放到DATAGRID中,用户输入数据后,就可以马上更新了。现在的.NET,又要用适配器的update方法去保存到数据库中,挺烦哦。用ADO时,一个表添加到记录中,如果这表有定义约束,而且发生重复记录时,它就可以马上引发事件通知客户端程序或显示出错。但ADO.NET中,要用适配器的fill填到数据库,才出现这些东西。晕,C#中已经没有ado的数据组件,MS这样是不是太过份了?逼我们用ado.net,大家会不会觉得用ADO.NET做些小数据库太麻烦了??
相反,我以为有了ado.net比以前方便多了。
如果一定要用ADO,在.NET中也是可以的
你还没用熟而已。
Ado.net比Ado强大,很多地方还很方便呢。
我这里就有一个,如果要的话就发给你。
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
程序效率性能会高很多的。2.在.NET中是可以继续用ADO的,ADO说到底也是一种COM 组建罢了,你应用进来不也可以吗?
不过用ADO的访问,配合.NET下的数据显示控件(如:DBGrid)显得有点别扭。3.兄弟,去学学ADO.NET吧,顺应时代的潮流哦~
ADO--->ADO.Net的过程中
是很麻烦,但我相信ado.net 有其强大之处.
共同进步
同意呵呵
public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
if( connection == null ) throw new ArgumentNullException( "connection" ); // Create a command and prepare it for execution
SqlCommand cmd = new SqlCommand();
bool mustCloseConnection = false;
PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection );
ApplicationLog.WriteInfo(commandText + GetStringParameter(commandParameters));
// Create the DataAdapter & DataSet
using( SqlDataAdapter da = new SqlDataAdapter(cmd) )
{
DataSet ds = new DataSet(); // Fill the DataSet using default values for DataTable names, etc
da.Fill(ds);
// Detach the SqlParameters from the command object, so they can be used again
cmd.Parameters.Clear(); if( mustCloseConnection )
connection.Close(); // Return the dataset
return ds;
}
}
你现在为什么需要在进行数据库操作的时候写这么多东西,你知道吗?因为你的程序没有分层,没有按照模块化的思想去走,所以你没写一次数据处理,就要写这么多东西,所以你会觉得麻烦。
我现在的程序有一个层叫做数据处理层,是可以复用的,就是不管什么样的数据库和表,你只要把这个层的基类放上去,当进行数据处理的时候,你要做的只是调用几个简单的方法而已,其他的adapter和command什么的都不要自己建立。
这就是ado.net的好处。
后来用用ADO.NET,慢慢就习惯了,关键是面向对象思想和分层架构,ADO.NET确实
比较好
推荐ibastia或nHebernate
关键是楼主ADO.net用的时间不长,时间长了你也就习惯了。^_^
initial catalog=tyjdb;
integrated security=SSPI;
persist security info=False;
workstation id=WHOAMI;
packet size=4096";
其中WHOAMI为笔者的服务器名。
选取工具箱中的SqlDataAdapter并拖至该Web Form,提示时选取tyjdb的数据连接,选择使用SQL语句访问数据库,生成SQL语句时只填入SELECTFROM ADDRESS,确认完成即可。程序生成代码如下:protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
//存取数据库的主要类
protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
//SQL语句处理的类
protected System.Data.SqlClient.SqlConnection sqlConnection1;
//连接数据库的类
在InitializeComponent()中有如下声明:
this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter();
this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand();
this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1;
this.sqlSelectCommand1.CommandText = "SELECT name, email, age, address FROM address";
this.sqlSelectCommand1.Connection = this.sqlConnection1;
为使Table中数据能在Web Form中显示,加入一个DataGrid控件至Web Form上,并在Page_Init中加入如下语句:sqlConnection1.Open();
//打开数据库连接
DataSet objDataset;
//新建一个放数据的DataSet
objDataset=new DataSet();
sqlDataAdapter1.Fill(objDataset, "address");
//将数据填入DataSet
DataGrid1.DataSource=objDataset.Tables["address"].DefaultView;
//关联DataSet和DataGrid
DataGrid1.DataBind();
//绑定数据
sqlConnection1.Close();
//关闭数据库连接
编译执行后Web Form已可将数据库中数据显示在DataGrid中了。增加数据 若想增加数据库数据时,我们只需在Web Form上新增对应字段数量个数的TextBox,并新增一个按键,接着为该按键增加Click事件,具体代码如下:sqlInsertCommand1.Parameters["@name"].Value=TextBox1.Text;
//将TextBox赋值给对应参数
sqlInsertCommand1.Parameters["@email"].Value=TextBox2.Text;
sqlInsertCommand1.Parameters["@age"].Value=TextBox3.Text;
sqlInsertCommand1.Parameters["@address"].Value=TextBox4.Text;
sqlInsertCommand1.Connection.Open();
//打开连接
sqlInsertCommand1.ExecuteNonQuery();
//执行Insert语句
sqlInsertCommand1.Connection.Close();
//关闭连接
sqlConnection1.Open();
DataSet objDataset;
//下面程序段更新DataGrid
objDataset=new DataSet();
sqlDataAdapter1.Fill(objDataset, "address");
DataGrid1.DataSource=objDataset.Tables["address"].DefaultView;
DataGrid1.DataBind();
执行这段程序时,只需在TextBox中填入要添加的记录字段的值,然后按该按键即可执行添加功能。删除数据 若想删除数据库数据时,我们则需在Web Form上新增一个TextBox5及一个按键,为该按键增加如下代码:SqlCommand sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand();
//声明Sql Command类对象
this.sqlDataAdapter1.DeleteCommand = sqlDeleteCommand1;
sqlDeleteCommand1.CommandText="DELETE FROM ADDRESS WHERE NAME='"+TextBox5.Text+"'";
//SQL语句
sqlDeleteCommand1.Connection = this.sqlConnection1;
//声明使用的数据连接
sqlDeleteCommand1.Connection.Open();
sqlDeleteCommand1.ExecuteNonQuery();
//执行该SQL语句
sqlDeleteCommand1.Connection.Close();
执行这段程序时,只需在TextBox5中填入要删除的记录name字段的值,然后按该按键即可执行删除功能。习惯就好了 朋友!!!!