2014年11月11日 星期二

SQL連線

string query = "SELECT Cname,Ename FROM BI";
            string strConnect = ConfigurationManager.ConnectionStrings["ERP_DataSource"].ConnectionString;

            SqlConnection sconn = new SqlConnection(strConnect);
            SqlCommand cmd = new SqlCommand(query, sconn);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataTable DT = new DataTable();
            da.Fill(DT);
            if (DT.Rows.Count > 0)
            {
                gv.ID = DT.TableName;
                gv.AllowPaging = false;
                gv.AllowSorting = true;
                gv.AutoGenerateColumns = false;
                foreach (DataColumn c in DT.Columns)
                {
                    BoundField bf = new BoundField();
                    bf.DataField = c.ColumnName;
                    bf.HeaderText = c.ColumnName;
                    gv.Columns.Add(bf);
                }
                gv.Visible = true;
                gv.DataSource = DT;
                gv.DataBind();
            }

以上的程式 query可以更改select句
然後把讀到的值都丟到 名為gv的這個gridview裡
-----------------------------------------------------------
-----------------------------------------------------------
 string whos = DDL03.SelectedValue;
            string cs = ConfigurationManager.ConnectionStrings["ERP_DataSource"].ConnectionString;
            string qs = "SELECT * FROM BI WHERE Cname = N'" + whos + "'";
            //SqlConnection連接資料庫
            using (SqlConnection cn = new SqlConnection(cs))
            {
                cn.Open();
                //引用SqlCommand物件
                using (SqlCommand command = new SqlCommand(qs, cn))
                {
                    //搭配SqlCommand物件使用SqlDataReader
                    using (SqlDataReader dr = command.ExecuteReader())
                    {
                        while ((dr.Read()))
                        {
                            //判斷是否空值
                            if (!dr[0].Equals(DBNull.Value))
                            {
                                LabTast.Text = dr[0].ToString();
                            }
                        }
                    }
                }
            }


以上的程式 可以在DDL03這個表單選取人名
把抓到的值丟進dr[]陣列裡 就可以逐一抓出來
-----------------------------------------------------------
-----------------------------------------------------------
select 語法:

SELECT name From 資料表 WHERE name = '袋鼠'
把叫袋鼠的名子給找出來
如果你發現WHERE中文怎麼都出不來 那是編碼問題'之前加個N
SELECT name From 資料表 WHERE name = N'袋鼠'

當"藍色"表的資料id要抓紅色資料表的中文可以這樣下
SELECT LBname FROM BI AS P JOIN Loan_Bank AS S ON P.LBid = S.LBid

沒有留言:

張貼留言