<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之旅 廣告
                # **兩種組合:command + dataRead 或者是 dataAdapter + dataSet + dataGrieview** # 1、Command + DataRead( ) 需要一直連接數據庫。 1、命名空間:using System.Data.SqlClient; 2、與數據庫相關的對象首先必須用sqlconnection方法創建一個連接對象(取名為conn);其次,與數據庫有關的增、刪、改、查操作,都必須創建 SqlCommand 對象(命名為sqlcmd)來調用其中的方法; 3、用到的方法是Read方法;但該方法無構造函數,所以需要通過sqlcommand對象的 executeRead()方法來生成; 所以這就需要先創建 sqlcommand 對象(取名為 sqlcmd),再通過 sqlcmd 去調用 executeRead 方法(表達為:sqlcmd.ExecuteRead())。 4、一共實例化了3個對象;sqlconn、sqlcomm、sqldr。 5、用完需要關閉的資源:數據庫連接對象 conn 與dataread 對象; 代碼如下:(可以創建一個富文本 richtextbox 來做這個操作,并且雙擊 form 對話框,就可以得到 private void Form1_Load(object sender, EventArgs e) ) 。 ``` private void Form1_Load(object sender, EventArgs e) { //實例化數據庫連接對象 conn SqlConnection conn = new SqlConnection ("server = CA9; database = 審圖表; uid = sa; pwd = Am******23 ") // 實例化 command 對象,并輸入一條要執行的 sql 語句。這里我們想查詢的是查找 dbo.審核信息這張表中的所有列,并且用ID 這一列的正序來查。逆序是desc。 SqlCommand sqlcmd2 = new SqlCommand ("select * from dbo.審核信息 order ID asc", conn) // 括號內兩個參數,一個是需要執行的 sql 查詢語句,一個是匹配的連接對象conn。 //實例化 DataRead 對象,通過 sqlcmd 對象的executeRead方法來創建 SqlDataReader sqldr = sqlcmd2.ExecuteRead( ); //分別實例化三個對象以后,開始執行 conn.Open( ); if (sqldr.HasRows) //用 sqldr 對象的 HasRows 方法來檢查數據庫中是否有數據,如果有則是 true。 { while(sqldr.Read() ) // 則用sqldr 對象的 Read 方法來一行行遍歷數據 { richTextbox.Text += sqldr["ID"] + “ ” + sqldr["項目編號"] + "\n"// 在我們添加的富文本框中,依次輸出ID編號及項目編號。調用對象的ID列,用的表達形式是sqldr["列名"]。 } } sqldr.Close( ); //需要關閉 sqldr 對象 conn.Close( ); //需要關閉數據庫 } ``` > 注:兩個sqldr 中間需要再加入空格`+" "`,才不會系統出錯。 ![](https://box.kancloud.cn/f350812a03f15b1de47f3f8251bbdc85_877x463.png) # 2、DataSet + DataAdapter( ) + DataSet() + DataGridViews控件 > 如果用這個組合,則無需設置 command ,也無需 conn.open() 不需要一直連接數據庫。 過程如下圖: ![](http://ww4.sinaimg.cn/large/006tNc79gy1g43d9j1rozj328q0u0k8h.jpg) 1、DataSet對象是數據集(可以理解為臨時數據庫)、DataAdapter對象用來在 set 數據集、數據庫之間進行增刪改查操作。DataGridView 空間是 set 數據集的體現。 dataset數據集中,除了是一張張dataTable數據表的集合,也可以是一個個數據存儲關系的集合。所以在dataGridview控件中指定datasourcr的時候,用的是ds.Table["temp"],意思是調用 set 集合中的 Table(表格),然后方括號里面是表的名字。 可以看出 我們可以在同一個 set 對象中設置不同的臨時表 Table,取名為 Table1,Table2等。 一共實例化了3個對象。無需打開數據庫,因為DataAdapter自己會打開并關閉。 ``` //實例化連接對象 SqlConnection sqlconn = new SqlConnent( "server = CA9A; database = 審圖表; uid = sa; pwd = xxx"); //實例化 dataadapter 對象, SqlDataAdapter sqlda = new SqlDataAdapter ("select * from dbo.審圖表", sqlconn); //實例化 dataset 對象 DataSet myds = new DataSet( ); sqlda.Fill( myds, "temp_table"); // 用 sqlda 對象的 Fill 方法來填充數據集。 //將 set 數據集體現在 datagridview 控件中 DataGridView1.DataSource = myds.Tables["temp_table"]; ``` > 也可以直接在 dataGridView 控件屬性中指定控件的數據源,一旦指定了,系統會自動生成dataAdapter 以及dataSet對象。 ![](https://box.kancloud.cn/be6bc4b5cad2c50f761124f1cbd2b3f1_579x88.png) # 例子datagridview DataGridView 登錄界面用 `dataGridView1.Rows[0].Cells["密碼"]` 或者是`dataGridView1.Rows[0].Cells[2]`來表示行列。 或者是用`DataGridView[0,2]`即可,但實際運行會提示錯誤。 如果不通過 DataGridView 而是直接用 DataSet 的話: `ds.Tables["登錄"].Rows[0][2].ToString() != LogPwd;` ``` private void button1\_Click(object sender, EventArgs e) { LogID = richTextBox1.Text.Trim(); LogPwd = richTextBox2.Text.Trim(); //連接到“XMEDI”中的dbo.登陸賬戶,與這個表里面的賬戶共用信息 SqlConnection sqlconn = new SqlConnection("server="); SqlDataAdapter da = new SqlDataAdapter("select \* from dbo.登陸賬戶 where 員工工號 = " + LogID + "and 密碼 =" + LogPwd, sqlconn); //不要直接寫"select \* from dbo.登陸賬戶",而是直接根據用戶輸入的員工編號去建一個sqlda,在這里直接判斷完,后面就不需要在寫w.指針了。但要注意寫的sql語句應該是更VBA那樣用加號+拼接起來。不能直接寫"select \* from dbo.登陸賬戶 where 員工工號=LogID and 密碼 = LogPwd",因為這樣LogID和LogPwd就無法被識別了。 //如果用戶錄入的員工編號及密碼與數據庫中數據一致,則打開主窗口 DataSet ds = new DataSet(); da.Fill(ds,"登錄"); if (ds.Tables\["登錄"\].Rows.Count > 0) //說明dbo.登陸賬戶表中有數據 { Form2 form2 = new Form2(); form2.ShowDialog(); } else { MessageBox.Show("登錄失敗"); } } ``` ![](https://img.kancloud.cn/02/f0/02f0416a257df26d72aa3f8a686dcffe_882x517.png) ### 判斷登錄條件 ![](https://img.kancloud.cn/44/c7/44c740fc4647461da6961fced9bf329a_858x272.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>

                              哎呀哎呀视频在线观看