C#实现数据的增删改查
最近跟了⼏个项⽬,期间学到了不少东西,所以把学到的知识点写在这⾥,供以后参考:
1:增,删,改,查
要对数据进⾏增删改查,前提是获取数据集,如何获取数据集呢?简单的就是通过查询语句查询出来,并将查询出来的结果传递给某个数据容器,通过操作数据容器来操作数据。
private string m_SQL;//sql语句
private string m_SqlConnString; //数据库连接字符串
private SqlConnection m_SqlConnection;        //数据库连接对象
private DataSet m_DataSet;//全局变量数据集
private SqlDataAdapter m_SqlDataAdapter;        //数据适配器
private SqlCommandBuilder m_SqlCommandBuilder;        //⾃动⽣成更新DataSet的语句
private BindingSource m_BindingSource;//绑定数据集
m_SqlConnString = DBManagerSQL.SetConnectionString(Common.C_CONNECTION_KEY);//获取数据库连接字符串
m_SqlConnection = new SqlConnection(m_SqlConnString);//连接数据库
m_SQL = "select [字段名1],[字段名2],[字段名3]......... from [表名]  where [过滤条件]";
m_SqlDataAdapter = new SqlDataAdapter(m_SQL, m_SqlConnection);//创建数据适配器
m_SqlCommandBuilder = new SqlCommandBuilder(m_SqlDataAdapter); //⽤于⾃动⽣成sqlCommand
m_DataSet = new DataSet();
//填充数据集
m_SqlDataAdapter.Fill(m_DataSet, "表的别名(⾃⼰定义)");
//初始化myBindingSource,控件与数据集中间的⼀个桥梁。
m_BindingSource = new BindingSource();
m_BindingSource.DataSource = m_DataSet;
m_BindingSource.DataMember = "表的别名";
//调⽤数据绑定函数
this.BindingCtrlToDB();
//将数据集绑定到数据视图上
gridControlMain.DataSource = m_BindingSource;
//翻译空间上⾯显⽰的英⽂字段名为中⽂
DBManagerSQL.SetGridComment(gridViewMain, tableName);
public override void BindingCtrlToDB()
{
//字段绑定
控件名.DataBindings.Clear();
控件名.DataBindings.Add("EditValue", m_BindingSource, "数据库⾥的字段名");
}
增:
this.m_BindingSource.AddNew();
  当为某⼀些控件赋初始值时,要在m_BindingSource.AddingNew();的⽅法⾥⾯写,否则容线空值的现象,因为增加的时候m_BindingSource.AddNew();会把控件清空。
删:
public virtual void btnDel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if (MessageBox.Show("您确定要删除这条记录吗?", "提⽰", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)//删除时提⽰⽤户是否删除
{
this.m_BindingSource.RemoveAt(m_BindingSource.Position);//删除选中⾏
this.m_SqlDataAdapter.Update(this.m_DataSet.Tables[0]);//删除后更新数据集
    //这⾥要把删除按钮的操作控制好,如果不想控制,可以写⼀句话来判断m_BindingSource⾥⾯是否还有数据    //,如果有可以删除,如果没有则提⽰并返回
//  if(m_BindingSource.RwCount>0)
    //  {
    // his.m_BindingSource.RemoveAt(m_BindingSource.Position);//删除选中⾏基本的增删改查语句
//  this.m_SqlDataAdapter.Update(this.m_DataSet.Tables[0]);//删除后更新数据集
      //  }
    //else
    //{
        //MessageBox.Show("没有数据可以删除");
    //}
}
}
    改:
修改没有什么提别的,这⾥不作介绍了。
查:
主要就是sql语句的写法,这⾥不作详细介绍。
存储:数据操作完毕后必然要保存。即把数据的修改提交到数据库。
      public virtual void btnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)    {
if (this.InitEditControlInputRules() == true)
{
this.m_BindingSource.EndEdit();//结束m_BindingSource的编辑状态
      //如果是直接在gridview⾥⾯编辑数据则需要两句话
      //this.gvList.CloseEditor();
//this.gvList.UpdateCurrentRow();
      //如果没有这两句话会出现最后条虽然写⼊了数据但是保存时出现空值,因为谢了,
//那是因为他并没有结束编辑状态并写⼊到数据集中
this.m_SqlDataAdapter.Update(this.m_DataSet.Tables[0]);
}
}
取消m_BindingSource的编辑可以调⽤
this.bindingSourceMain.CancelEdit();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。