最近跟了幾個項目,期間學到了不少東西,所以把學到的知識點寫在這里,供以后參考:
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();