<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Entity Framwork 與ADO.net的區別 https://www.cnblogs.com/nodot1/p/9514982.html https://blog.csdn.net/wangzl1163/article/details/72897170 兩者都是數據訪問技術。可以說entity是在 ado.net 上面 的優化和二次開發。 也就是說使用了 EOF 模型以后,無需再寫 sql 語句。比如對象 eof.add()就可以代表 sql 的添加數據的語句了。 它們有以下幾點區別: ADO.Net是開發人員自己select、update等寫sql語句,來實現對數據庫的增刪改查等操作;采用EF進行開發操作數據庫的時候,只需要操作對象,這樣做使開發更方便,此時可以讓開發人員使用C#的語法,來完成對數據庫進行操作,完全的面向對象思想。 ADO.Net對內存消耗較小;而EF對內存消耗比較大,EF的性能不如ADO.Net. 代碼的可讀性。使用EF的代碼的可讀性更高。 聯系:EF的底層是基于ADO.Net技術的。比如對數據操作的時候最終都是轉化成SQL語句的。 > entity framwork雖然可讀性更高,但占用內存更大,建議如果不是必須,不用迷信。 # 創建entity framwork實體數據模型 在解決方案資源管理器中右擊 => 添加 => ADO實體數據模型。 >注意命名:只要第一步生成實體模型命名即可。名字可以跟數據庫名字一樣,比如“審圖表”。后續有幾個需要輸入名字的最好不要變,默認即可。比如該實體模型的連接,會自動叫“審圖表Entities”;命名空間的名字會自動叫“審圖表Model”。 會出現后綴名為.edms的文件。 ![](https://box.kancloud.cn/8a7ded89078bb0c031b621b066f766f6_323x325.png) 出現圖形界面 ![](https://box.kancloud.cn/2b6f88ea46e3ccee0563c62bdf473df1_551x351.png) > 注:如果數據庫中無主鍵,則無法形成可視化的實體模型。 # 刪除entity framwork實體數據模型 在解決方案中右擊即可刪除。包括下拉的內容。 ![](https://box.kancloud.cn/bcfce8ffd0d98f9a4ee588ffc07b17f0_345x392.png) 但刪除完后,如果要再新建一個同名的entity framwork模型則會提示:與現有連接設置重復。 此時需打開App.config,在 `connectionSring`中,將就的`add name` 刪除,即可添加。 ![](https://box.kancloud.cn/2ae8e4c94cfdd2d7097a2d0220e92b32_322x372.png) ![](https://box.kancloud.cn/ef743cb468aef557852f3c5d0f71a5f0_1161x528.png) # 利用EF實體數據模型實現數據增刪改查 需要創建using命名空間。 ## 顯示 利用dataGridView控件,讓選中的數據記錄可以顯示在上面。 ![](https://box.kancloud.cn/042342ba0dd7914ebfba4ae2586bd5f4_780x390.png) 先要出發dataGridView中的CellClick事件。如果雙擊DGV控件,那么出現的是CellContentClick事件。所以要單擊后再選擇小閃電。3雙擊即可觸發。 ![](https://box.kancloud.cn/019080ec23da9bbd53d79c40b95bdc74_891x433.png) ``` private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > 0)//判斷選中的行是否有內容 { strPMID = Convert.ToString(dataGridView1[0, e.RowIndex].Value).Trim();//中括號內表示行、列索引號,trim的意思是刪除頭尾中的空格。 using (審圖表Entities1020 EFdb = new 審圖表Entities1020()) //實例化審圖表實體模型 { 審核信息 shxx = EFdb.審核信息.Where(W => W.項目編號 == strPMID).FirstOrDefault(); //實例化審圖表實體模型下的審核信息表,用strPMID關鍵字段進行查找,生成一張只有一行的臨時表。 if (shxx != null) { tb_xmbh.Text = shxx.項目編號; tb_zgsbh.Text = shxx.子公司編號; tb_pjname.Text = shxx.項目名稱; tb_pjmanager.Text = shxx.項目經理; tb_signdate.Text = shxx.登記時間.ToString(); } } } } ``` ## 增加 ``` private void btn_add_data_Click(object sender, EventArgs e) { //添加數據操作 using (審圖表Entities1020 EFdb = new 審圖表Entities1020())//創建實體數據模型 { 審核信息 shxx = new 審核信息 //通過ef實體模型中的表名創建實體對象 { //為實體對象賦值,也就是各個字段的值 項目編號 = tb_xmbh.Text, 子公司編號 = tb_zgsbh.Text, 項目名稱 = tb_pjname.Text, 項目經理 = tb_pjmanager.Text, 登記時間 = Convert.ToDateTime(tb_signdate.Text), }; EFdb.審核信息.Add(shxx);//添加模型.表名的 EFdb.SaveChanges();//對操作寫入數據庫 dataGridView1.DataSource = EFdb.審核信息.ToList();//直接更新數據庫顯示 } } ``` ## 修改 ``` private void btn_modify_Click(object sender, EventArgs e) { using (審圖表Entities1020 EFdb = new 審圖表Entities1020()) { 審核信息 shxx = new 審核信息 { 項目編號 =tb_xmbh.Text };//被放到這里的字段是不能改動的,否則就會出現錯誤提示 EFdb.審核信息.Attach(shxx);//構造sql語句 //重新為除了項目編號以外的各個字段賦值 shxx.子公司編號 = tb_zgsbh.Text; shxx.項目名稱 = tb_pjname.Text; shxx.項目經理 = tb_pjmanager.Text; shxx.登記時間 = Convert.ToDateTime(tb_signdate.Text); EFdb.SaveChanges(); dataGridView1.DataSource = EFdb.審核信息.ToList(); MessageBox.Show("修改成功!"); } } ``` ## 刪除 要實現的是:在DataGridView 控件中右擊,可啟動“刪除”功能。 1、需添加右擊的控件,以實現功能; 2、完成“刪除”動作的代碼 1、在form1窗口中添加contextMenuStrip1控件,以便能右擊 ![](https://box.kancloud.cn/50bc324f09b4be4743d77c937ea66ed1_850x489.png) 2、雙擊左上角“刪除”兩個字,就能啟動控件代碼 ``` private void 刪除ToolStripMenuItem_Click(object sender, EventArgs e) { using (審圖表Entities1020 EFdb = new 審圖表Entities1020())//創建ef實體模型的對象 { //查找要刪除的記錄并顯示在上面的框中,與新建不同 審核信息 shxx = EFdb.審核信息.Where(W => W.項目編號 == strPMID).FirstOrDefault();//創建實體模型中表格的對象,返回值是只包含一行的一張表 try { if (shxx != null) { EFdb.審核信息.Remove(shxx); EFdb.SaveChanges(); dataGridView1.DataSource = EFdb.審核信息.ToList(); MessageBox.Show("刪除成功"); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } ``` # 連接數據庫的更新 圖形界面右擊 ![](https://box.kancloud.cn/e23da69788bd26c60d3f732712cf7af0_509x399.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看