1.Button按钮确定时提示
if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { //具体代码 }
2.当页面Textbox控件过多需要判断非空时
foreach (Control item in Controls)//遍历控件 { if (item is TextBox &&string.IsNullOrWhiteSpace(item.Text))//遍历TextBox类型控件 根据需求可以增加条件跳过某个控件不遍历 { item.Focus(); MessageBox.Show("请输入信息!", "信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); return; } }
3.CheckBox全选和反选
/// <summary> /// 点击全选 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void checkall_Click(object sender, EventArgs e) { if (checkall.CheckState == CheckState.Checked) { foreach (CheckBox ck in authoritygroup.Controls) ck.Checked = true; checkall.Text = "反选"; } else { foreach (CheckBox ck in authoritygroup.Controls) ck.Checked = false; checkall.Text = "全选"; } }
4.绑定下拉框时,第一行插入空项
/// <summary> /// 绑定 /// </summary> public void BindWarePosition1(int stid) { sql.sqlserver sql = new WarehouseManage.sql.sqlserver(); DataTable dt = sql.GetWarepositionBywarehouseid(stid); DataRow dr = dt.NewRow(); dr["warepositionname"] = null; dr["wid"] = 0; dt.Rows.InsertAt(dr, 0);//插入第一行 cmbwp.DataSource = dt; cmbwp.ValueMember = "wid"; cmbwp.DisplayMember = "warepositionname"; cmbwp.SelectedIndex = 0; }
Combox取值
int id=Convert.ToString(cmbwp.SelectedValue)//取到绑定的选项ID string name=cmbwh.Text;//选项显示的值
5.关闭主窗口时退出进程
private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Application.Exit(); }
6.定义枚举按数字取值
/// <summary> /// 选择操作类型 /// </summary> public enum operationtype : int { 请选择=0, 录入 = 1, 转移 = 2, 撤销 = 3, 增加 = 4, 修改 = 5, 删除 = 6 } /// <summary> /// 操作记录 /// </summary> /// <param name="content"></param> public static void OperationInser(string content, int OperationType) { //操作记录 string[] array1 = Enum.GetNames(typeof(common.CommonClass.operationtype)); string operatype = array1[OperationType];//获得类型名
//插入数据库
sql.insert(content,operatype); }
调用时
string content = "增加成功,姓名:" + name; OperationInser(content, 4);
7.创建线程执行方法
Control.CheckForIllegalCrossThreadCalls = false; ThreadStart thStart = new ThreadStart(Repair);//threadStart委托 ,方法名:Repair Thread thread = new Thread(new ThreadStart(thStart)); thread.Priority = ThreadPriority.Highest; thread.SetApartmentState(ApartmentState.STA); thread.IsBackground = true; //关闭窗体继续执行 thread.Start();
8.使用SqlBulkCopy (注意DataTable里面顺序、标题名字、类型必须和表完全一致才行)
/// <summary> /// 批量插入 /// </summary> /// <param name="dt"></param> /// <param name="tableName">表名</param> public string BatchInsertBySqlBulkCopy(DataTable dt, string tableName) { using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString)) { sbc.BatchSize = dt.Rows.Count; sbc.BulkCopyTimeout = 100; sbc.DestinationTableName = tableName; for (int i = 0; i < dt.Columns.Count; i++) { sbc.ColumnMappings.Add(dt.Columns[i].ColumnName, i); } //全部写入数据库 sbc.WriteToServer(dt); return "导入完成"; } }
附上sqlserver连接语句
#region 数据库连接信息 //public static string connectionString = "server=XX.XX.XX.XX;database=XXXXX;uid=XXXX;pwd=XXX;"; public static string connectionString = "server=localhost;database=ReportServer;Integrated Security = true;"; #endregion #region 基础方法 //查询,返回DataTable public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataTable datatable = new DataTable(); adapter.Fill(datatable); return datatable; } } } //执行update insert delete语句,失败了返回-1,成功了返回影响的行数,注意:自动commit public static int ExecuteNonQuery(string SQLString) { using (SqlConnection connection = new SqlConnection(connectionString)) { int val = -1; try { connection.Open(); SqlCommand cmd = new SqlCommand(SQLString, connection); val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); } catch (SqlException ex) { throw new Exception(ex.Message); } finally { if (connection.State != ConnectionState.Closed) { connection.Close(); } } return val; } } #endregion