開拓自己

          NeverDrop

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            0 隨筆 :: 14 文章 :: 0 評論 :: 0 Trackbacks

          winform里 控件如果要綁定數(shù)據(jù)! 他綁定的 其實是視圖!
          下面顯示 一般的構(gòu)造方法:
          private SqlConnection conn=new SqlConnection("server=(local);pwd=sa;uid=sa;database=pubs");
          private SqlCommand cmd=new SqlCommand("select * from jobs",conn);
          private SqlDataAdapter da=new SqlDataAdapter("select * from jobs",conn);
          private DataSet ds=new DataSet()//可以起個名字給這個ds
          把ds里放入一個虛擬表
          ? da.Fill(ds,"jobs");把da填充到ds里? 并且起名字為jobs
          private DataView dv=new DataView(ds.Tables["jobs"]);? 新建一個 jobs表類型的視圖

          對綁定在視圖的數(shù)據(jù)進行篩選! 得到的新視圖綁定在 控件上!
          篩選的語句? 其實就是? select語句 的where 后面的部分
          例如
          dv.RowFilter="max_lvl=100"; 表示篩選max_lvl列上=100的數(shù)據(jù);
          dv.Sort="max_lvl"; 這個表示對max_lvl列上的數(shù)據(jù)進行排序;


          增加數(shù)據(jù)
          //用Dataset數(shù)據(jù)級里進行的更新!不過一般建議用Sqlcommand來做
          ????DataRow row=ds.Tables["jobs"].NewRow();
          ????row[1]=this.textBox1.Text;
          ????row[2]=this.textBox2.Text;
          ????row[3]=this.textBox3.Text;
          ????ds.Tables["jobs"].Rows.Add(row);? //先前只是新建了符合這個表的 行對象? 現(xiàn)在是把這個行加到這個表里?
          ????SqlCommandBuilder cb=new SqlCommandBuilder(da);
          ????da.Update(ds,"jobs");

          注意row[0]是有的這一列是自動增長的列,所以我不給!
          SqlCommandBuilder cb=new SqlCommandBuilder(da);
          這一句? 是自動生成sqlCommand 的insert語句!(其實這個也可以用在delete 和 update中)
          注意 要想這樣用? 有2個前提? !? 一 在SqlDataAdapter先前 已經(jīng)使用了select查詢語句!這樣我們SqlCommandBuilder 才知道這個表的結(jié)構(gòu)才能自動生成insert語句?? 二 這個表里必須有主鍵。

          如果沒有以上2個條件? 就必須 用
          da.InsertCommand=cmd
          cmd就是就是SqlCommand的對象? 在里面進行插入語句?

          最后 一定要有?da.Update(ds,"jobs");

          更新:
          DataRow row? 這個對象似乎 沒有new DataRow()對象
          他似乎 必須用table來 newRow來產(chǎn)生;

          //刪除的時候:
          DataRow row=ds.Tables["jobs"].Rows[9];
          1? ds.Tables["jobs"].Rows.Remove(row);
          2? row.Delete();
          第一種似乎是在數(shù)據(jù)集里刪那一行! 第2種 delete() 然后后面在配合update() 就可以在數(shù)據(jù)庫里刪除!
          ??????????????????????????????????????????????????????????????????????????????????不過配合上還有點問題。


          posted on 2007-01-09 21:43 誠夏徠 閱讀(226) 評論(0)  編輯  收藏 所屬分類: .net

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 祥云县| 连山| 阳春市| 固阳县| 贞丰县| 合肥市| 陆河县| 论坛| 霞浦县| 桑植县| 安宁市| 伊金霍洛旗| 兴业县| 西乌| 长武县| 嵩明县| 登封市| 南汇区| 锦州市| 高清| 怀集县| 阜新市| 白水县| 铁力市| 九台市| 营山县| 长治县| 澄迈县| 荥阳市| 屯门区| 钟山县| 黄大仙区| 太和县| 布尔津县| 岳阳县| 营口市| 灌南县| 响水县| 乌拉特中旗| 永靖县| 抚宁县|