上午终于把图书管理系统搞定了!!好累!!从中确实学到不少..特别是对数据库的....我也进一步优化了一下异常处理机制.感觉还真不错.............但到现在我还是不太习惯用存储过程,主要是不熟悉,每次与数据库的交互都要手动编写代码,感觉很累......
从中我学到了不少好东西....其中一个是对数据集的添加...其实有两种方法
一种是
this.BindingContext[this.dataSet11,"User"].AddNew(); 这种是比较傻瓜似的..但结束后注意
this.BindingContext[this.dataSet11,"User"].EndCurrentEdit();
DataSet1 ds = new DataSet1();
ds = (DataSet1)(this.dataSet11.GetChanges());
this.UpdateSource(ds);
this.dataSet11.Merge(ds);
this.dataSet11.AcceptChanges(); 当输入完数据后先要结束当前所有编辑,然后新建数据集,得到刚才新增加的.也就是GetChange();
然后与原来的数据集合并,最后别忘了update.然后用acceptchange做下收尾工作.
还有一种方法是
DataRow row = this.dataSet21.Tables["BorrowBook"].NewRow();
这种方法和前面一种大同小异
加完数据后用
this.dataSet21.Tables["BorrowBook"].Rows.Add(row); 与原来的合并一下就可以了.最后别忘了update....然后大功告成
删除的方法也很简单,如下,先找到要删除的数据的位置,然后调用delete()就可以了.如下
int currentPostion=this.BindingContext[this.dataSet11,"User"].Position;
this.dataSet11.User.Rows[currentPostion].Delete(); 从这个程序中我也更清楚的明白sqlDataAdaper是如何工作的了....首先他是建立一个和数据库的链接.用connection语句,然后用如下的方法
string sqlstr = "select * from BorrowBook where ReaderID="+this.textBox1.Text;
this.sqlDataAdapter1.SelectCommand.CommandType=CommandType.Text;
this.sqlDataAdapter1.SelectCommand.CommandText=sqlstr;
this.sqlDataAdapter1.SelectCommand.Connection=this.sqlConnection1; 其中CommandType是选择SQL查询用哪种方法..可以是存储方法,也可以是SQL文本命令
这样就OK了
做完之后总觉得查询数据库语句和如何建立一个比较好的数据库不是很懂....看来还得再看下数据库方面的书.