C# 重构中遇到的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tink_bell/article/details/80550982

1、form.Show() 和form.ShowDialog() 的区别

  show:不是模态窗体,就是用它将窗体显示出来,它可以不关闭而继续使用其它的窗体。
  showDialog:模态窗体,只能将它关闭之后,才可以使用其它窗体。

2、comboBox控件

选取值的问题:

string level=comboLevel.SelectedItem.ToString();   //获取下拉框选中的值

下拉框的选择问题
  DropDownStyle属性:

属性值 含义
Simple 简单的下拉列表框(始终显示列表)
DropDown 可以编辑,与有下拉列表。默认
DropDownList 只有下拉列表,不能编辑

  代码实现:

combox1.DropDownStyle = ComboBoxStyle.DropDownList;

3、DataGridView控件

//修改标题行
dataGridView1.Columns[0].HeaderCell.Value = "编号"; 

//获取当前选中行的用户id
string userid = dataGridView1.CurrentRow.Cells["用户名"].Value.ToString();

//移除当前选中行
dataGridView1.Rows.Remove(dataGridView1.CurrentRow);

去除空白行:
  将属性AllowUserToAddRows 设置为 False
设置控件不能编辑
  将属性ReadOnly 设置为 True
只能选取整行
  将属性 SelectionMode 设置为 FullRowSelect

//去除表格空白行,也就是不能手动添加行
dataGridView1.AllowUserToAddRows = false;
//不能修改
dataGridView1.ReadOnly = true;
//选择模式,整行选取
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;


4、提示框

 //提示用户是否要删除
DialogResult result = MessageBox.Show("确定要删除吗?","警告",MessageBoxButtons.OKCancel);
if (result==DialogResult.OK)
{
    MessageBox.Show("点击了确定按钮");
}

5、日期转换出错问题:

不要使用强转方法,使用convert.toDateTime方法来转换。

6、获取时间

(1)获取本地时间

string now=System.DateTime.Now.ToString();
string date = now.Split(new char[] {' '})[0]; //获取日期部分
string time = now.Split(new char[] {' '})[1]; //获取时间部分

(2)获取服务器时间

char[] c = { ' ' };
string now = sqlHelper.ExecuteScalar("select getdate()").ToString();
string[] dateList = now.Split(c);
this.date = dateList[0];  //获取日期部分
this.time = dateList[1];  //获取时间部分

使用时,要考虑的问题:
  为什么要获取服务器的时间么? //值得思考一下,应该是哪个的时间
  那就和系统的部署有关系了,不管是c/s结构还是b/s结构,如果数据都是从本地的数据库中调取的,那么日期就应该是本地的时间,因为本地保存数据库就相当于“服务器”,集服务器与客户端一体。如果我们的数据都是存在网络上的服务器,需要联网获取真正的远程服务器的数据,那么就应该考虑使用服务器的时间。
对于服务器和客户端在同一台电脑上的系统来说,本地时间和服务器时间是相同的,这样的话,使用哪个都可以。

格式化SQL日期

SELECT  FORMAT(date,'yyyy-MM-dd') as date FROM dbo.t_CheckWeek
//注意:必须区分格式化函数的大小写,年和日是小写,月份是大写

7、报表日期问题:

  数据库里面的类型是date类型,只是日期部分,但是读取到报表中显示就成了日期+时间的格式,大概是因为vs里只有DateTime类型,没有Date类型吧。我们可以采取对报表中的参数格式化来只显示日期。

关于读取日期问题,通过参数的属性设置,将它格式化成短日期的格式。
这里写图片描述

=FormatDateTime(Fields!mydate.Value, DateFormat.ShortDate)

注意:日期的查询,数据库中的类型必须是“日期类型”,如果是字符串类型,则查询不到。

猜你喜欢

转载自blog.csdn.net/Tink_bell/article/details/80550982
今日推荐