C#关于进度条无法保持前置的问题
摘要:最近弄了下进度条,把进度条和后台读取数据分开,结果发现进度条无法前置。把处理方法记录下,以便忘记:1 ProgressForm frm = new ProgressForm();2 3 Thread th1 = new Thread(new ThreadStart(FrmLoad));4 th1.Start();5 6 frm.ShowDialog();流程:1.(主线程)创建进度条窗体。2.启动数据读取线程。3.(主线程)显示进度条窗体。
阅读全文
posted @
2013-11-01 16:23
清风暮雨
阅读(156)
推荐(0)
C# SQL语句拼凑方式
摘要:1. 1 public int UpdPOInfo(string poNum, MdlPOInfo mpoi) 2 { 3 StringBuilder sbSql = new StringBuilder(); 4 SqlParameter[] sqlParms; 5 sbSql.Append("UPDATE Bn_POInfo SET "); 6 sbSql.Append("PONum=@in_PONum,POETD=@in_POETD,POETA=@in_POETA,POPort=...
阅读全文
posted @
2013-11-01 14:58
清风暮雨
阅读(714)
推荐(0)
C# 线程间操作无效: 从不是创建控件"Form1"的线程访问它.
摘要:有两种方式解决 1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;2.使用Invoke等委托函数。问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThreadCalls =false;默认就是这样,现在默认为true。如果不会好几个线程同时操作一个控件用方法1就可以。如果存在多个线程一起操作控件使用方法2方法2可以Invoke(new MethodInvoker(delegate(){//do something... }));
阅读全文
posted @
2013-10-31 16:10
清风暮雨
阅读(945)
推荐(0)
DataTable的事件响应
摘要:这个问题是由要同步两个数据库而引发的,我的想法是,对于两个同样内容的数据库(保存在Access和SqlServer中),使得在程序中修改一个表的时候对两个数据库的表同时更新。当然,更新的工作交给Adapter,主要的技术是让从两数据库读取的Datatable修改同步起来。这里就要用到DataTable的事件响应,我用到的有:增:DataTable.TableNewRow ; DataTable.RowChanged ;删:DataTable.RowDeleting ; DataTable.RowDeleted ;改:DataTable.ColumnChanged下面以 表 T1 T2 为例说明
阅读全文
posted @
2013-10-12 13:50
清风暮雨
阅读(1770)
推荐(1)
通过统一事务来控制对数据库进行多次操作
摘要:通过统一事务来控制对数据库进行多次操作,发生错误时可以对前面的所有操作进行回滚。 下面是一段循环调用带Output的存储过程代码 int result = 0; SqlConnection conn = null; SqlTransaction transaction = null; try { bool isAudit = true; //加载并读取数据库连接配置文件 XmlOperate ...
阅读全文
posted @
2013-09-24 14:53
清风暮雨
阅读(681)
推荐(0)
SQL 获取存储过程返回值和参数返回值(output )
摘要:1.获取Return返回值//存储过程//Create PROCEDURE MYSQL// @a int,// @b int//AS// return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());conn.Open();SqlCommand MyCommand = new SqlCommand("MYSQL", conn);MyCommand.CommandTyp
阅读全文
posted @
2013-09-18 11:01
清风暮雨
阅读(1269)
推荐(0)
C# 判断字符串是否为数字字符串
摘要:【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图将string类型的字符串变量转换为int类型,如果该字符串不是数字字符串则会抛出异常,这时在catch语句块中就能捕获异常。一旦发现异常,则不是数字字符串。 try{ result = Convert.ToInt32(message); return true; } catch{ return false; } 【方法二】:通过正则表达式来判断。通过using System.Text.RegularExpressions;导入命名空间来访问Regex类。也可以直接通过System.Text.Regul...
阅读全文
posted @
2013-09-09 16:59
清风暮雨
阅读(226)
推荐(0)
DataTable 添加空行,并添加到指定位置
摘要:DataRow dr = dt.NewRow();dt.Rows.InsertAt(dr,0);
阅读全文
posted @
2013-09-03 11:49
清风暮雨
阅读(850)
推荐(0)
创建XML,并添加节点
摘要:新增XML using System.Xml; using System.IO; string filePath= AppDomain.CurrentDomain.BaseDirectory + "so_pe.xml"; XmlDocument xmlDoc = new XmlDo...
阅读全文
posted @
2013-09-02 16:09
清风暮雨
阅读(347)
推荐(0)
C# 获取DataGridView 行和列的索引
摘要:获取当前选中行索引: this.dataGridView1.CurrentRow.Index;获取当前选中列索引: this.dataGridView1.CurrentCell.ColumnIndex知识补充:datagridview.CurrentCell.RowIndex;是当前活动的单元格的行的索引datagridview.SelectedRows 是选中行的集合datagridview.SelectedColumns 是选中列的集合datagridview.SelectedCells 是选中单元格的集合DataGridView1.CurrentRow.Index 获得包含当前单元格的行
阅读全文
posted @
2013-08-22 17:14
清风暮雨
阅读(6323)
推荐(0)
循环改变DataGridView行的颜色
摘要:foreach (DataGridViewRow dgvRow in datagridview1.Rows) { if (dgvRow != null) { int qty = dgvRow.Cells["数量1"].Value.ToString().Trim(); int inventor...
阅读全文
posted @
2013-08-22 15:41
清风暮雨
阅读(180)
推荐(0)
超时时间已到。在操作完成之前超时时间已过或服务器未响应
摘要:解决方法,如图。原来值是600秒,改为0即可。
阅读全文
posted @
2013-08-16 17:12
清风暮雨
阅读(128)
推荐(0)
C# datatable 去重复行
摘要:1.2个datatable合并,并且去重dt1.Merge(dt2);//合并//去掉重复行DataView dataView = new DataView(dt1);string[] strComuns = { "列名1", "列名2", "列名3" };dt1= dataView.ToTable...
阅读全文
posted @
2013-08-15 15:08
清风暮雨
阅读(1405)
推荐(0)
合并2个DataTable
摘要:dt.Merge去重:dt2.Merge(table1,true);
阅读全文
posted @
2013-08-14 16:46
清风暮雨
阅读(130)
推荐(0)
C# datatable汇总
摘要:double iQty= dt.Compute("sum(数量)", string.Format("编码='{0}' and 型号='{1}'", matCode, atch)) == DBNull.Value ? 0.000 : Convert.ToDouble(dt.Compute("sum(数量)", string.Format("编码='{0}' and 型号='{1}'", matCode, atch)));
阅读全文
posted @
2013-08-06 16:21
清风暮雨
阅读(631)
推荐(0)
C# 将datagridview的DataSource 赋值给DataTable
摘要:DataTabledt=dataGridView1.DataSourceasDataTable;
阅读全文
posted @
2013-07-20 12:42
清风暮雨
阅读(1522)
推荐(1)
将DataTable中的一行复制到另一个DataTable
摘要:方法1: ds2.Tables[0].ImportRow(ds1.Tables[0].Rows[i]);方法2: DataRow dr = ds2.Tables[0].NewRow(); dr.ItemArray = ds1.Tables[0].Rows[i].ItemArray; ds2.Tables[0].Rows.Add( dr );
阅读全文
posted @
2013-07-19 14:44
清风暮雨
阅读(89)
推荐(0)
C# XML读取填充到DataTable(导成2列的形式)
摘要:XML格式:1张三2李四3王五代码:string TypePath = AppDomain.CurrentDomain.BaseDirectory + "Type.xml";//\Debug目录下DataSet ds = new DataSet();ds.ReadXml(TypePath);DataTable dt = ds.Tables[0];DataRow row = dt.NewRow();row["TypeCode"] = "-1";row["Typename"] = "--请选择--"
阅读全文
posted @
2013-07-09 18:36
清风暮雨
阅读(184)
推荐(0)
让已经填充数据的DataTable排序
摘要:DataView dView = new DataView();dView = this._Dt.DefaultView;dView.Sort = "ID ASC";//升序(DESC--降序)this._Dt = dView.ToTable();
阅读全文
posted @
2013-07-04 14:02
清风暮雨
阅读(109)
推荐(0)
C# Label换行
摘要:第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用. 第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它 控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件. 第三种是通过判断内容的长度,动态设置Label的大小.具体程序如下(Label控件取名为Label1,显示内容...
阅读全文
posted @
2013-06-28 13:40
清风暮雨
阅读(551)
推荐(0)