測試文字功能,小工具,標題

記錄很重要,不然會浪費很多時間在找以前的記憶

一個人的氣度,決定他未來的高度。

2013年7月9日 星期二

DataReader


private DataTable RunSqlString()
        {
            using (SqlConnection conn = new SqlConnection(textBox1.Text))
            {
                DataTable dt = null;
                String strCmd = textBox2.Text;// "Select md_date,md_room from meeting_date where md_date=@md_date and md_room=@md_room ";
                using (SqlCommand cmd = new SqlCommand(strCmd, conn))
                {
                    //cmd.Parameters.AddWithValue("@md_date", strdate);
                    try
                    {
                        conn.Open();
                        using (SqlDataReader dr = cmd.ExecuteReader())
                        {
                            if (dr.HasRows)
                            {
                                dt = new DataTable("tmp");

                                for (int i = 0; i < dr.FieldCount; i++)
                                {
                                    dt.Columns.Add(dr.GetName(i));
                                }

                                while (dr.Read())
                                {
                                    DataRow drw = dt.NewRow();
                                    for (int i = 0; i < dr.FieldCount; i++)
                                    {
                                        drw[i] = dr[i].ToString();
                                    }
                                    dt.Rows.Add(drw);
                                }
                            }
                            else
                            {
                                MessageBox.Show("沒有資料!!!");
                            }
                        }
                    }
                    catch (Exception err)
                    {
                        MessageBox.Show(err.Message);
                        throw;
                    } //要先開啟連線
                    finally
                    {
                        conn.Close();
                    }
                }
                return dt;
            }
        }//結尾

=======================================================================
   
protected bool check_meetingroom_pk(string strdate ,string strroom ) {
        bool b = false;
        //步驟一給予適當的名稱空間namespace      using System.Data.SqlClient;
        //步驟二建立連線物件   
        String strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        using (SqlConnection conn = new SqlConnection(strConn))
        {
            //步驟三建立Command物件讀取資料庫的資料
            String strCmd = "Select md_date,md_room from meeting_date where md_date=@md_date and md_room=@md_room ";
            using (SqlCommand cmd = new SqlCommand(strCmd, conn))
            {
                cmd.Parameters.AddWithValue("@md_date", strdate);
                cmd.Parameters.AddWithValue("@md_room", strroom);
                //步驟四建立DataReader物件處理讀出來的資料
                //透過Command物件所提供的ExecuteReader的方法來產生Command
                //要先開啟連線
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                //步驟五在瀏覽器上顯示資料
                //讀取資料之前要先呼叫read()的方法
                while (dr.Read())
                {
                    b = true; // dr[0].ToString();
                }
                conn.Close();
            }
        }
        return b;
    }

DataAdapter


 String strConn = "data source=.;user id=aa;password=aa;initial Catalog=northwind";
        using (SqlConnection conn = new SqlConnection(strConn))
        {
            String strCmd = "Select ProductID,ProductName from Products where categoryID=@categoryID";
            using (SqlDataAdapter da = new SqlDataAdapter(strCmd, conn))
            {
                da.SelectCommand.Parameters.AddWithValue("@categoryID", 1);
                DataSet ds = new DataSet();
                da.Fill(ds, "dsProducts");

                ////新增,刪除,修改才要用
                //SqlCommandBuilder builder = new SqlCommandBuilder(da);
                ////新增
                //builder.GetInsertCommand();

                //DataTable productsTable = ds.Tables["dsProducts"];//修改會用這這行
                //DataRow newRow = productsTable.NewRow();
                //newRow["ProductName"] = "IP5S";
                //newRow["ProductID"] = "1";
                //productsTable.Rows.Add(newRow);
                         

                ////修改
                //builder.GetUpdateCommand();
                //productsTable.Rows[1]["ProductName"] = "KEVIN";
               

                ////刪除
                //builder.GetDeleteCommand();
                //ds.Tables["dsProducts"].Rows[12].Delete();

                ////最後更新
                //da.Update(ds, "dsProducts");  //最後更新


                //查詢用到的迴圈
                foreach (DataRow theRow in ds.Tables["dsProducts"].Rows)
                {
                    Response.Write(theRow[0].ToString() + "," + theRow["ProductName"].ToString() + "<br>");
                }

2013年6月14日 星期五

bindingNavigator 調整高度(圖片大小)

bindingNavigator 調整高度(圖片大小)

先要把bindingNavigator的 AutoSize 屬性,改為 False

才能調整高度

圖片大小,要再調整  ImageScalingSize ,才能調整大小

2013年6月13日 星期四

清空form上所有textbox的值


清空form上所有textbox的值

// 如果textbox沒放在其他容器內的話
foreach (Control obj in this.Controls)
            {
                if (obj.GetType() == typeof(TextBox))
                {
                    ((TextBox)obj).Text = "";
                }
            }

//如果有放在其他容器內的話
private void button1_Click(object sender, EventArgs e)
        {
         
            foreach (Control obj in this.Controls)
            {
                test(obj);
            }

        }



        private void test(Control controls)
        {
            if (controls.HasChildren)
            {
                foreach (Control control in controls.Controls)
                {
                    test(control);
                }
            }
            else
            {
                if (controls.GetType() == typeof(TextBox))
                {
                    ((TextBox)controls).Text = "";
                }
            }
        }

有母版的,但不一定是最好的解法,有查到更好的再更新 2015-03-05
foreach (Control obj in this.Master.FindControl("ContentPlaceHolder1").Controls)
                    {

                       if (obj.GetType() == typeof(Label))
                        {
                            if (((Label)obj).ID.ToString().Substring(0,12) == "lblmeetingmsg")
                            {
                                ((Label)obj).Text = "";
                            }

                        }

                    }

Master加了 Panel1就不行了,後來改成這樣就好了,好像用Panel1的方式比較好點

foreach (Control obj in this.Panel1.Controls)
                    {
                     if (obj.GetType() == typeof(Label))
                        {
                            if (((Label)obj).ID.ToString().Length > 12)
                            {
                                ((Label)obj).Text = "";
                            }

                        }

                        if (obj.GetType() == typeof(CheckBox))
                        {
                            ((CheckBox)obj).Checked = false;
                        }

                    }

前台 js
<script language="javascript" type="text/javascript">
function ClearAllTextBox() {
 var obj = window.document.forms[0];
 for (i = 0; i < obj.elements.length; i++) {
 var elem = obj.elements[i];
 if (elem) {
 if (elem.type == "text") {
 elem.value = "";
 }
 } 
 } 
 }
 </script>

2013年6月6日 星期四

DataReader 傳資料給 DataGridView

DataReader 傳資料給 DataGridView


Dim cn As New SqlConnection("server=wk-db;database=northwind;user id=sa;password=sa")
        Dim cmd As New SqlCommand("select * from products", cn)

        cn.Open()
        Dim dt As New DataTable
        Dim dr As SqlDataReader = cmd.ExecuteReader

        For i As Integer = 0 To dr.FieldCount - 1
            Dim col As New DataColumn(dr.GetName(i), dr.GetFieldType(i))
            dt.Columns.Add(col)
        Next


        Do While dr.Read
            Dim r As DataRow = dt.NewRow
            For i As Integer = 0 To dr.FieldCount - 1
                r(i) = dr(i)
            Next
            dt.Rows.Add(r)
        Loop

        DataGridView1.DataSource = dt

2013年5月23日 星期四

可使用 BUTTON 屬性 DialogResult 回傳值

可使用 BUTTON 屬性 DialogResult 回傳值

從另外一個視窗回傳


private void Button17_Click(object sender, EventArgs e)
        {
            FrmLab4_input fi = new FrmLab4_input();

            if (fi.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //==========可能會key錯欄位

                //DataRow dw = this.northwindDataSet.Products.NewRow();
                ////row不能自己new出來,要依附在某個table
                //dw["ProductName"] = fi.textBox1.Text;
                //dw["Discontinued"] = fi.checkBox1.Checked;
                //this.northwindDataSet.Products.Rows.Add(dw);
                //this.productsBindingSource.MoveLast();
               
                //======================強型別
                NorthwindDataSet.ProductsRow dw = this.northwindDataSet.Products.NewProductsRow();
                dw.ProductName = fi.textBox1.Text; //直接能用
                dw.Discontinued = fi.checkBox1.Checked;
                this.northwindDataSet.Products.Rows.Add(dw);
                this.productsBindingSource.MoveLast();

            }




2013年5月18日 星期六

轉型 (C# 程式設計手冊)

資料型別之間的轉換,可以使用轉型明確地進行轉換,但在某些情況下,則只允許隱含轉換。例如: