C#酒店管理重要知识点总结
2014-02-15 15:07
309 查看
1 : 怎么使组件随着窗体大小的改变而改变(相对位置不变 eg:本来居中还是居中)?-----(使组件随窗体大小的改变而改变) 2
2 : 怎么是窗体分割成符合我们需求的一小块一小块?而且还可以随窗体大小的改变而改变大小? ---(布局必备) 2
3 : 在做C#的winform界面开发时,我们怎么使我们的组件大小相同,上下等距,左右间隔也等距呢? (布局必备) 3
4 : 怎么使窗体在刚运行的时候就显示在屏幕的中央呢??? 4
5 : 按回车键怎么直接执行一个按钮的操作呢?? 4
6 : 怎么把数据库中查询到的数据放在表格中显示,并且让表格的列的大小刚好为窗体的宽度? 5
7 : 怎么在几个组件添加一个边框,使效果如图 ??? 5
8 : 怎么使用密码框? 6
9 : 怎么把文本框设置为只读的? 6
11 : 怎么获取表格中我们想要的那一行的数据? 7
12: 怎么使子窗体和主窗体之间不可以切换? 8
13 : Application.Exit (); 和 f . Close() 的区别?? 8
14 : 怎么选出表格中为’空闲’ 的那一行信息? 9
15 : 怎么对数据库进行增删改? 10
16 : 怎么从登录窗口跳转到另外一个窗口,而让子窗体关闭,程序也跟着关闭? 11
17 : 怎么为DataGridView的表格赋值,用自己的代码而不是用那边直接选择的数据源?? 12
18 : 怎么把从数据库中查询到的数据赋值到DataGridView中去?? 13
1 : 怎么使组件随着窗体大小的改变而改变(相对位置不变 eg:本来居中还是居中)?-----(使组件随窗体大小的改变而改变)
答: 有一个叫做Anchor属性,图中的上下左右就是相对于窗体的距离始终保持窗体属性中Margin属性的大小.如果左右长度不变,则选左右, 同理上下的也一样
2 : 怎么是窗体分割成符合我们需求的一小块一小块?而且还可以随窗体大小的改变而改变大小? ---(布局必备)
比如这个..在C#的winform窗体中 布局的属性有, 有一个属性叫做 SplitContainer的, 这个属性可以把一个面板分割成左右或上下的两份,然后我们在添加一个FLowLayoutPanel的面板进去,然后用第一个问题的Anchor设置距离上下左右的大小就可以了.
3 : 在做C#的winform界面开发时,我们怎么使我们的组件大小相同,上下等距,左右间隔也等距呢? (布局必备)
如果我们一个一个来调大小会很麻烦的,所以VS2010给我们一个工具,在这个图的最下面一排就是那一些对齐的方式,很方便,也很好用...
当然为了随窗体的变化而变化,我们还是要用到Anchor这个属性
4 : 怎么使窗体在刚运行的时候就显示在屏幕的中央呢???
选择CenterScreen就可以显示在中央了.当然还有很多个选择.,自己可以去试一试5 : 按回车键怎么直接执行一个按钮的操作呢??
AcceptButton : 按下回车(Enter)执行选项按钮的操作.CancelButton : 按下ESC(键盘左上角那个) 执行选项按钮的操作.
这个还不是很懂用...
6 : 怎么把数据库中查询到的数据放在表格中显示,并且让表格的列的大小刚好为窗体的宽度?
C#winform有一个DataGridView 的组件 ,把这个添加到面板中.然后点击右上角的小三角,会跳出如图的选项, 然后设置Anchor的上下左右,这样才会随窗体大小改变而改变. 然后点击选择数据源,就可以直接选择数据库中的表,然后显示出来.非常的方便实用设置这个属性,可以让所以列的长度为DataGridView的长度
7 : 怎么在几个组件添加一个边框,使效果如图 ???
C#winform编程有一个组件: 这个组件就是边框,我们先把这个组件添加到面板中,然后再把我我们想要的组件添加到这个GroupBox 的框框中,就OK了8 : 怎么使用密码框?
在 C# winform编程中,没有直接可以使用的密码框, 只有文本框, 但是它给我们一个属性,我们可以把文本框直接设置成密码框9 : 怎么把文本框设置为只读的?
这个比较简单到这里,基本上都是属于布局的,就是拖拖控件就可以完成的,下面就属于代码部分的了
10 : 我们怎么选中查询到的那一行标记起来?????????
如图:
#region 查询数据并高亮那一行 string name = tbName.Text; int i = 0; for (i = 0; i < dataGridView1.RowCount - 1; i++) { if (name.Equals(dataGridView1.Rows[i].Cells[0].Value.ToString())) { //选中表括格中的一行 int index = dataGridView1.CurrentRow.Index; //当前行在表格中第几行 dataGridView1.Rows[index].Selected = false; //把那一行设置为不选中状态 dataGridView1.Rows[i].Selected = true; //把我们查询到的那一行设置为选中状态 dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[0]; //每一行的第一个单元格的那个三角尖,设置到我们刚才选中的那一行 break; } } if (i >= dataGridView1.RowCount - 1) { MessageBox.Show("没有找到姓名为a:" + name + "的顾客信息"); } #endregion |
dataGridView : DataGridView的实例
dataGridView1.Rows[i].Cells[0].Value.ToString() : 表示第i 行,第一个单元格的值
11 : 怎么获取表格中我们想要的那一行的数据?
//获取表括格中某一行的数据,列的也可以,单元格也行 DataGridViewRow dgvr = dataGridView1.CurrentRow; cName.Text = dgvr.Cells[0].Value.ToString(); |
12: 怎么使子窗体和主窗体之间不可以切换?
就是,主窗体点击一个东西,跳出子窗体,在子窗体没有关闭之前,主窗体不可以操作.Form f = new From(); f.ShowDialog(); //这个的就是主窗体和子窗体之间不可以切换 f.Show(); //这个是两个窗体同时存在,也可以切换 |
13 : Application.Exit (); 和 f . Close() 的区别??
application,exit() 是整个程序结束 f . close() ; 是这个窗体结束 |
14 : 怎么选出表格中为’空闲’ 的那一行信息?
private void checkBox1_CheckedChanged(object sender, EventArgs e) { //如果选中只显示空闲的复选框执行以下操作 if (checkBox1.Checked) { //这里的dataGridView1.RowCount是会变化的,所以循环次数不确定,要注意 //这里要是用i++这种for循环·,会出现错误, 注意 for (int i = dataGridView1.RowCount - 2; i > 0; i--) { #region 不?显?示?不?为a空?闲D状痢?态?的?房?间? //如果不是空闲的则删除 if (!("空闲".Equals(dataGridView1.Rows[i].Cells[4].Value.ToString()))) { //每remove一次,rowCount就减少1,这里就出现问题了, //当你继续remove的时候就会出错 dataGridView1.Rows.Remove(dataGridView1.Rows[i]); } #endregion } } else { this.roomTableAdapter1.Fill(this.hotelManagementSystemDataSet1.Room); } } |
当然你先把RowCount存在一个变量里面也是错的,因为等下你要继续remove一行,则会出现越界异常
15 : 怎么对数据库进行增删改?
public int AddToDb(string rid,string cid,string rpeople) { SqlConnection con = null; try { con = new SqlConnection(); //连接数据库的固定代码使用window用户登录SQL,这个当然也可以用sql用户登入的 con.ConnectionString = "Data Source=(local);Initial Catalog=HotelManagementSystem ; Integrated Security = True;"; //conn.ConnectionString = "Data Source=(local);Database=HotelManagementSystem ;Uid=sa;Pwd="; //使用SQL用户sa登入的 if (con.State == System.Data.ConnectionState.Closed) { con.Open(); // MessageBox.Show("数据库连接成功"); string sql = string.Format("insert into CustomerRoom(RId,CId,RPeople) values({0},{1},{2}) ", rid, cid, rpeople); SqlCommand cmd = new SqlCommand(sql, con); //SqlDataReader dr = cmd.ExecuteReader(); //这个是SQL查询的 int flag = cmd.ExecuteNonQuery(); //这个是增删改的SQL语句 return flag; } } catch (Exception) { MessageBox.Show("数据库连接失败"); } finally { con.Close(); } return 0; } |
16 : 怎么从登录窗口跳转到另外一个窗口,而让子窗体关闭,程序也跟着关闭?
刚开始把所以的模块连接起来的时候,那个登录窗口跳转到主界面,我是用Login.hide();而主窗体用的是MainForm.show();显示的,但是当我关闭主窗体的时候,程序还在运行..这个是一个大问题..经过我查询资料,我从一个博客里面找到了解决方法:
1,在Programs.cs 添加以下代码
意思就是让Login先以对话框的形式显示出来,然后判断对话框的结果是否为OK?
是不是为OK?这个要在Login这个界面的那个登录按钮的监听里里面设置..
Login login = new Login(); if (login.ShowDialog() == DialogResult.OK) { Application.Run(new Main()); } |
就是就登录成功后的哪里添加这个代码....
this.DialogResult = DialogResult.OK; this.Close(); |
17 : 怎么为DataGridView的表格赋值,用自己的代码而不是用那边直接选择的数据源??
//新建定数据源(DataTable 继承自ListSoure) DataTable dt = new DataTable(); //添加列 dt.Columns.Add(new DataColumn("1")); dt.Columns.Add(new DataColumn("2")); dt.Columns.Add(new DataColumn("3")); //添加行 DataRow dr = dt.NewRow(); dr[0] = DateTime.Now.ToString(); dr[1] = "时间"; dr[2] = "仲夏"; dt.Rows.Add(dr); dataGridView1.DataSource = dt; |
18 : 怎么把从数据库中查询到的数据赋值到DataGridView中去??
这个的话要结合17知识点的内容,把数据库查询到的数据放进去,具体代码如下DataTable dt = new DataTable(); //添加列 dt.Columns.Add(new DataColumn("Name")); dt.Columns.Add(new DataColumn("Psw")); SqlConnection conn = null; try { conn = new SqlConnection(); conn.ConnectionString = "Data Source=(local);Initial Catalog=S_T1;Integrated Security=True;"; //使用window用户登入 if (conn.State == ConnectionState.Closed) { conn.Open(); string sql = "select * from StorageUser"; SqlCommand cmd = new SqlCommand(sql, conn); //创建一个执行SQL的命令对象 SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) { string name = sdr.GetString(0); string psw = sdr.GetString(1); //添加行 DataRow dr = dt.NewRow(); dr[0] = name; dr[1] = psw; dt.Rows.Add(dr); } dataGridView1.DataSource = dt; } } catch (Exception e1) { MessageBox.Show(e1.ToString()); } finally { conn.Close(); //关闭数库 因为就像电话一样,你正在通话中,其他电话打不进来.数据库也是一样 } |
但是有一个问题: 就是如果把查询数据库查询到的数据放在SqlDataReader里面返回,然后另外一个函数,调用查询SQL的那个函数,得到SqlDataReader对象,在查询会出现错误.
理由好像是,SQL连接关闭后,这个不能用.
相关文章推荐
- Struts2重要知识点总结
- 项目管理,有许多知识点需要日常中总结和积累
- c# 知识点总结
- C#开发的餐饮管理系统总结
- C# 知识点总结(二)
- SQL语法的重要知识点总结
- C#学习 知识点总结一
- C#知识点总结(上)
- c#知识点总结
- STL + c++ + 模板 + 重要思维 + 基础算法+ 经典算法 + 经典实例 + 编程总结+ 心得+ 入门必会 + 知识点汇总。+string +dfs +bfs等重要算法
- 知识点总结_(做内容管理系统之后总结1)
- Service重要的知识点总结
- C#知识点总结系列:2、C#中IDisposable和IEnumerable、IEnumerator
- C#知识点总结
- [Jweb] Servlet 与 Jsp 张志宇总结重要知识点
- linux磁盘格式化与管理知识点总结
- C#基础知识点总结
- 软件测试管理基础重点知识点总结
- C++动态内存管理核心知识点总结
- C#知识点总结