private void skinButton3_Click(object sender, EventArgs e) { /* * bool sex = false; * * sql = string.Format("SELECT * FROM student WHERE name = '{0}' and age >= {1} and age <= {2} and sex = '{3}' and height >= {4} and height <= {5} and weight >= {6} and weight <= {7}", * nameTextBox.Text, * ageLeastTextBox.Text, * ageMostTextBox.Text, * sex.ToString(), * heightLeastTextBox.Text, * heightMostTextBox.Text, * weightLeastTextBox.Text, * weightMostTextBox.Text * ); * * if (nameTextBox.Text == "") * sql = sql.Replace(" name = '' and", ""); * if (ageLeastTextBox.Text == "") * sql = sql.Replace(" age >= and", ""); * if (ageMostTextBox.Text == "") * sql = sql.Replace(" age <= and", ""); * if (maleRadioButton.Checked) * sql = sql.Replace("sex = 'False'", "sex = 'True'"); * if (allRadioButton.Checked) * sql = sql.Replace(" sex = 'False' and", ""); * if (heightLeastTextBox.Text == "") * sql = sql.Replace(" height >= and", ""); * if (heightMostTextBox.Text == "") * sql = sql.Replace(" height <= and", ""); * if (weightLeastTextBox.Text == "") * sql = sql.Replace(" weight >= and", ""); * if (weightMostTextBox.Text == "") * sql = sql.Replace(" weight <= ", ""); * if (sql == "SELECT * FROM student WHERE") * sql = sql.Replace(" WHERE", ""); * if (sql.EndsWith(" and")) * sql = sql.Remove(sql.Count() - 4); * * //MessageBox.Show(sql); * * if (myCon.State == ConnectionState.Open) * { * myda = new SqlDataAdapter(sql, con); * DataSet myds = new DataSet(); * myda.Fill(myds, "student"); * skinDataGridView1.DataSource = myds.Tables["student"]; * } */ SQL.Select sqlSearch; if (TBComboBox.SelectedItem != null) { sqlSearch = SQL.SELECT("*").From(TBComboBox.SelectedItem.ToString()); } else { MessageBox.Show("没有表,呵呵哒!"); return; } for (int box = 0; box < skinGroupBox3.Controls.Count; box++) { if (skinGroupBox3.Controls[box].GetType() == typeof(CCWin.SkinControl.SkinWaterTextBox)) { CCWin.SkinControl.SkinWaterTextBox gbox = (CCWin.SkinControl.SkinWaterTextBox)skinGroupBox3.Controls[box]; string name = gbox.Name.Remove(gbox.Name.Length - 8); if (gbox.Text != "" && gbox.WaterText == "System.String") { string searchData = "'" + gbox.Text.ToString() + "'"; name = name + " = ?"; if (box == 0) { sqlSearch.Where(name, searchData); } else { sqlSearch.And(name, searchData); } } else if (gbox.Text != "" && (gbox.WaterText == "System.Double" || gbox.WaterText == "System.Int32")) { string searchData = gbox.Text.ToString(); if (gbox.Name.EndsWith("1")) { name = name + " >= ?"; if (box == 0) { sqlSearch.Where(name, searchData); } else { sqlSearch.And(name, searchData); } } else if (gbox.Name.EndsWith("2")) { name = name + " <= ?"; if (box == 0) { sqlSearch.Where(name, searchData); } else { sqlSearch.And(name, searchData); } } } } if (skinGroupBox3.Controls[box].GetType() == typeof(CCWin.SkinControl.SkinGroupBox)) { CCWin.SkinControl.SkinGroupBox boolGbox = (CCWin.SkinControl.SkinGroupBox)skinGroupBox3.Controls[box]; string boolName = boolGbox.Text + " = ?"; foreach (CCWin.SkinControl.SkinRadioButton radioBtn in boolGbox.Controls) { string searchData = "'" + radioBtn.Name.ToString() + "'"; if (radioBtn.Checked == true && radioBtn.Name != "All") { if (box == 0) { sqlSearch.Where(boolName, searchData); } else { sqlSearch.And(boolName, searchData); } } else { } } } if (skinGroupBox3.Controls[box].GetType() == typeof(CCWin.SkinControl.SkinDateTimePicker) && skinGroupBox3.Controls[box].Text != "") { CCWin.SkinControl.SkinDateTimePicker dtBox = (CCWin.SkinControl.SkinDateTimePicker)skinGroupBox3.Controls[box]; string dtName = dtBox.Name + " = ?"; string searchData = "'" + dtBox.Text + "'"; if (box == 0) { sqlSearch.Where(dtName, searchData); } else { sqlSearch.And(dtName, searchData); } } } Command cmdSearch = sqlSearch.toCommand(); // MessageBox.Show(cmdSearch.getStatement()); //DEBUG if (myCon.State == ConnectionState.Open) { myda = new SqlDataAdapter(cmdSearch.getStatement(), con); DataSet myds = new DataSet(); myda.Fill(myds, TBComboBox.SelectedItem.ToString()); skinDataGridView1.DataSource = myds.Tables[TBComboBox.SelectedItem.ToString()]; } }
// 连接数据库, 刷新条件查询控件 private void skinButton1_Click(object sender, EventArgs e) { if (TBComboBox.SelectedItem != null) { sql = string.Format("SELECT * from {0}", TBComboBox.SelectedItem.ToString()); } else { MessageBox.Show("没有表,连接失败,呵呵哒!"); return; } skinGroupBox3.Controls.Clear(); if (myCon.State == ConnectionState.Open) { myda = new SqlDataAdapter(sql, con); DataSet myds = new DataSet(); // SqlCommand cmdToTables = new SqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'", myCon); // SqlDataReader dr = cmdToTables.ExecuteReader(); // ArrayList TBList = new ArrayList(); // while (dr.Read()) // { // TBList.Add(dr.GetString(0)); // } // Array TBArray = TBList.ToArray(); // TBComboBox.DataSource = TBList; myda.Fill(myds, TBArray.GetValue(0).ToString()); skinDataGridView1.DataSource = myds.Tables[TBArray.GetValue(0).ToString()]; closeCommand = myCon.CreateCommand(); closeCommand.CommandType = CommandType.Text; orids = new DataSet(); myda.Fill(orids, TBArray.GetValue(0).ToString()); for (int i = 0; i < orids.Tables[TBArray.GetValue(0).ToString()].Rows.Count; i++) { oriList.Add(orids.Tables[TBArray.GetValue(0).ToString()].Rows[i].ItemArray[0].ToString()); } int basicX = 16, basicY = 44; for (int col = 0; col < skinDataGridView1.Columns.Count; col++) { // MessageBox.Show(skinDataGridView1.Columns[col].ValueType.ToString()); // 显示每一列的type int autoTitleWidth = skinDataGridView1.Columns[col].Name.Length * (int)skinDataGridView1.HeadFont.SizeInPoints; if (skinDataGridView1.Columns[col].Width < autoTitleWidth) { skinDataGridView1.Columns[col].Width = autoTitleWidth; } Color c = Color.FromArgb(100, 255, 255, 255); switch (skinDataGridView1.Columns[col].ValueType.ToString()) { case "System.String": #region System.String CCWin.SkinControl.SkinLabel labelN = new CCWin.SkinControl.SkinLabel(); labelN.Name = skinDataGridView1.Columns[col].Name; labelN.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); labelN.TextAlign = ContentAlignment.MiddleLeft; labelN.Location = new Point(basicX, basicY * (col + 1)); labelN.Text = skinDataGridView1.Columns[col].Name; labelN.AutoSize = true; skinGroupBox3.Controls.Add(labelN); CCWin.SkinControl.SkinWaterTextBox textBoxN = new CCWin.SkinControl.SkinWaterTextBox(); textBoxN.Name = skinDataGridView1.Columns[col].Name + "TextBoxN"; textBoxN.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); textBoxN.TextAlign = HorizontalAlignment.Left; textBoxN.Location = new Point(labelN.Location.X + labelN.Size.Width, labelN.Location.Y); textBoxN.WaterColor = c; textBoxN.WaterText = skinDataGridView1.Columns[col].ValueType.ToString(); skinGroupBox3.Controls.Add(textBoxN); #endregion break; case "System.Int32": #region System.Int32 CCWin.SkinControl.SkinLabel labelINT = new CCWin.SkinControl.SkinLabel(); labelINT.Name = skinDataGridView1.Columns[col].Name; labelINT.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); labelINT.TextAlign = ContentAlignment.MiddleLeft; labelINT.Location = new Point(basicX, basicY * (col + 1)); labelINT.Text = skinDataGridView1.Columns[col].Name; labelINT.AutoSize = true; skinGroupBox3.Controls.Add(labelINT); CCWin.SkinControl.SkinWaterTextBox textBoxINT1 = new CCWin.SkinControl.SkinWaterTextBox(); textBoxINT1.AutoSize = false; textBoxINT1.Size = new System.Drawing.Size(50, labelINT.Size.Height); textBoxINT1.Name = skinDataGridView1.Columns[col].Name + "TextBox1"; textBoxINT1.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); textBoxINT1.TextAlign = HorizontalAlignment.Left; textBoxINT1.Location = new Point(labelINT.Location.X + labelINT.Size.Width, labelINT.Location.Y); textBoxINT1.WaterColor = c; textBoxINT1.WaterText = skinDataGridView1.Columns[col].ValueType.ToString(); textBoxINT1.KeyPress += new KeyPressEventHandler(textBox_Validating); skinGroupBox3.Controls.Add(textBoxINT1); CCWin.SkinControl.SkinLabel labelINTtag = new CCWin.SkinControl.SkinLabel(); labelINTtag.AutoSize = false; labelINTtag.Size = new System.Drawing.Size(20, labelINT.Size.Height); labelINTtag.Name = "tag"; labelINTtag.Font = new System.Drawing.Font("微软雅黑", 14, FontStyle.Regular); labelINTtag.TextAlign = ContentAlignment.MiddleLeft; labelINTtag.Location = new Point(textBoxINT1.Location.X + textBoxINT1.Size.Width, labelINT.Location.Y); labelINTtag.Text = "~"; skinGroupBox3.Controls.Add(labelINTtag); CCWin.SkinControl.SkinWaterTextBox textBoxINT2 = new CCWin.SkinControl.SkinWaterTextBox(); textBoxINT2.AutoSize = false; textBoxINT2.Size = new System.Drawing.Size(50, labelINT.Size.Height); textBoxINT2.Name = skinDataGridView1.Columns[col].Name + "TextBox2"; textBoxINT2.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); textBoxINT2.TextAlign = HorizontalAlignment.Left; textBoxINT2.Location = new Point(labelINTtag.Location.X + labelINTtag.Size.Width, labelINTtag.Location.Y); textBoxINT2.WaterColor = c; textBoxINT2.WaterText = skinDataGridView1.Columns[col].ValueType.ToString(); textBoxINT2.KeyPress += new KeyPressEventHandler(textBox_Validating); skinGroupBox3.Controls.Add(textBoxINT2); #endregion break; case "System.Boolean": #region System.Boolean CCWin.SkinControl.SkinGroupBox groupBox = new CCWin.SkinControl.SkinGroupBox(); groupBox.AutoSize = false; groupBox.Size = new System.Drawing.Size(285, basicY); groupBox.Location = new Point(basicX, basicY * (col + 1)); groupBox.Text = skinDataGridView1.Columns[col].Name; skinGroupBox3.Controls.Add(groupBox); CCWin.SkinControl.SkinRadioButton radioBtnTrue = new CCWin.SkinControl.SkinRadioButton(); radioBtnTrue.AutoSize = false; radioBtnTrue.Name = "True"; radioBtnTrue.Size = new System.Drawing.Size(50, 20); radioBtnTrue.Font = new System.Drawing.Font("微软雅黑", 9, FontStyle.Regular); radioBtnTrue.Location = new Point(55, 20); if (groupBox.Text == "sex") { radioBtnTrue.Text = "男"; } else { radioBtnTrue.Text = "True"; } groupBox.Controls.Add(radioBtnTrue); CCWin.SkinControl.SkinRadioButton radioBtnFalse = new CCWin.SkinControl.SkinRadioButton(); radioBtnFalse.AutoSize = false; radioBtnFalse.Name = "False"; radioBtnFalse.Size = new System.Drawing.Size(50, 20); radioBtnFalse.Font = new System.Drawing.Font("微软雅黑", 9, FontStyle.Regular); radioBtnFalse.Location = new Point(135, 20); if (groupBox.Text == "sex") { radioBtnFalse.Text = "女"; } else { radioBtnFalse.Text = "False"; } groupBox.Controls.Add(radioBtnFalse); CCWin.SkinControl.SkinRadioButton radioBtnAll = new CCWin.SkinControl.SkinRadioButton(); radioBtnAll.AutoSize = false; radioBtnAll.Name = "All"; radioBtnAll.Size = new System.Drawing.Size(50, 20); radioBtnAll.Font = new System.Drawing.Font("微软雅黑", 9, FontStyle.Regular); radioBtnAll.Location = new Point(215, 20); radioBtnAll.Text = "ALL"; groupBox.Controls.Add(radioBtnAll); #endregion break; case "System.Double": #region System.Double CCWin.SkinControl.SkinLabel labelDouble = new CCWin.SkinControl.SkinLabel(); labelDouble.Name = skinDataGridView1.Columns[col].Name; labelDouble.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); labelDouble.TextAlign = ContentAlignment.MiddleLeft; labelDouble.Location = new Point(basicX, basicY * (col + 1)); labelDouble.Text = skinDataGridView1.Columns[col].Name; labelDouble.AutoSize = true; skinGroupBox3.Controls.Add(labelDouble); CCWin.SkinControl.SkinWaterTextBox textBoxDouble1 = new CCWin.SkinControl.SkinWaterTextBox(); textBoxDouble1.AutoSize = false; textBoxDouble1.Size = new System.Drawing.Size(50, labelDouble.Size.Height); textBoxDouble1.Name = skinDataGridView1.Columns[col].Name + "TextBox1"; textBoxDouble1.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); textBoxDouble1.TextAlign = HorizontalAlignment.Left; textBoxDouble1.Location = new Point(labelDouble.Location.X + labelDouble.Size.Width, labelDouble.Location.Y); textBoxDouble1.WaterColor = c; textBoxDouble1.WaterText = skinDataGridView1.Columns[col].ValueType.ToString(); textBoxDouble1.KeyPress += new KeyPressEventHandler(double_Validating); skinGroupBox3.Controls.Add(textBoxDouble1); CCWin.SkinControl.SkinLabel labelDoubletag = new CCWin.SkinControl.SkinLabel(); labelDoubletag.AutoSize = false; labelDoubletag.Size = new System.Drawing.Size(20, labelDouble.Size.Height); labelDoubletag.Name = "tag"; labelDoubletag.Font = new System.Drawing.Font("微软雅黑", 14, FontStyle.Regular); labelDoubletag.TextAlign = ContentAlignment.MiddleLeft; labelDoubletag.Location = new Point(textBoxDouble1.Location.X + textBoxDouble1.Size.Width, textBoxDouble1.Location.Y); labelDoubletag.Text = "~"; skinGroupBox3.Controls.Add(labelDoubletag); CCWin.SkinControl.SkinWaterTextBox textBoxDouble2 = new CCWin.SkinControl.SkinWaterTextBox(); textBoxDouble2.AutoSize = false; textBoxDouble2.Size = new System.Drawing.Size(50, labelDouble.Size.Height); textBoxDouble2.Name = skinDataGridView1.Columns[col].Name + "TextBox2"; textBoxDouble2.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); textBoxDouble2.TextAlign = HorizontalAlignment.Left; textBoxDouble2.Location = new Point(labelDoubletag.Location.X + labelDoubletag.Size.Width, labelDoubletag.Location.Y); textBoxDouble2.WaterColor = c; textBoxDouble2.WaterText = skinDataGridView1.Columns[col].ValueType.ToString(); textBoxDouble2.KeyPress += new KeyPressEventHandler(double_Validating); skinGroupBox3.Controls.Add(textBoxDouble2); #endregion break; case "System.DateTime": #region System.DateTime CCWin.SkinControl.SkinLabel labelTime = new CCWin.SkinControl.SkinLabel(); labelTime.Name = skinDataGridView1.Columns[col].Name; labelTime.Font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Regular); labelTime.TextAlign = ContentAlignment.MiddleLeft; labelTime.Location = new Point(basicX, basicY * (col + 1)); labelTime.Text = skinDataGridView1.Columns[col].Name; labelTime.AutoSize = true; skinGroupBox3.Controls.Add(labelTime); CCWin.SkinControl.SkinDateTimePicker dtPicker = new CCWin.SkinControl.SkinDateTimePicker(); dtPicker.Text = ""; dtPicker.font = new System.Drawing.Font("微软雅黑", 12, FontStyle.Bold); dtPicker.Name = skinDataGridView1.Columns[col].Name; skinGroupBox3.Controls.Add(dtPicker); dtPicker.Location = new Point(labelTime.Location.X + labelTime.Width, labelTime.Location.Y); #endregion break; } } } skinButton3.Enabled = true; skinButton2.Enabled = true; }