当前位置:文档之家› C#window窗体实现数据库连接

C#window窗体实现数据库连接

C#window窗体实现数据库连接
C#window窗体实现数据库连接

C#程序进行数据库连接,以及数据库的更新,插入,修改,查询等维护功能。

步骤:

1:创建windows窗体应用程序如下图放置所需要的控件:添加1个tabpage1控件,1个Lable控件,6个Button控件,2个textbox控件再按下列表格设置各控件的属性更改他们的名字;

3:程序运行结果图;

1:数据库连接:

成绩表:

删除前成绩表:

删除后成绩表:

插入前成绩表:

5:更新数据库:更新前成绩表:

4:程序源代码

using System;

using System.Collections.Generic;

using https://www.doczj.com/doc/f410805981.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace DataBase

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

comboBox1.Items.Add("SELECT 姓名,语文FROM 成绩表WHERE 学号= @001");

comboBox1.Items.Add("DELETE FROM 成绩表WHERE 数学= @115");

comboBox1.Items.Add("INSERT INTO 成绩表(姓名,学号,语文,数学,英语) VALUES(@姓名,@学号,@语文,@数学,@英语)");

comboBox1.Items.Add("Update 成绩表Set 语文= @131 WHERE 学号=@002");

}

private void button1_Click(object sender, EventArgs e)

{

string connectonString= @"Integrated Security=SSPI;Persist Security Info=False;

Initial Catalog=sql;Data Source=I-PC;";

connection= new SqlConnection(connectonString);

connection.Open();

if (connection.State == ConnectionState.Open)

{

textBox2.Text= "数据库连接成功,SqlConnection信息如下:"+ "\r\n"+ " 连接状态:"+ connection.State+ "\r\n"+ " SQL Server实例的名称:"+ connection.DataSource + "\r\n" +

" 数据库名称:" + connection.Database + "\r\n" + " SQL Server 版本:" + connection.ServerVersion + "\r\n" + " 数据库客户端Id:" + connection.WorkstationId + "\r\n" +

" 终止尝试并生成错误之前所等待的时间:"+ connection.ConnectionTimeout+ " 秒"+ "\r\n"+ " 网络数据包大小:"+ connection.PacketSize+ " 字节"+ "\r\n";

}

}

private void button2_Click_1(object sender, EventArgs e)

{

textBox2.Text = null;

String commandTextQuery = comboBox1.Text;

// String commandTextQuery = "SELECT * FROM Region where RegionID="zhangsan""+textBox1.Text;

//创建SqlCommand命令

SqlCommand cmdQuery= new SqlCommand(commandTextQuery, connection);

//执行SqlCommand命令并返回结果

cmdQuery.Parameters.AddWithValue("@001", textBox3.Text);

SqlDataReader reader= cmdQuery.ExecuteReader();

textBox2.Text= "学号为001的学生的姓名和语文分数是:" + "\r\n";

textBox2.Text = "姓名\t\t 语文" + "\r\n";

//Console.WriteLine("性别为女的客户的客户编号和姓名是:");

// Console.WriteLine("客户编号\t 姓名");

//通过循环列表显示查询结果集

while (reader.Read())

{

string rowInfo = reader[0] + "\t" + reader[1] + "\r\n";

textBox2.Text = textBox2.Text + rowInfo;

//Console.WriteLine(" {0} \t\t {1}",

reader[0], reader[1]);

}

//关闭查询结果集

reader.Close();

//Console.ReadLine();

}

private void button5_Click_1(object sender, EventArgs e)

{

textBox2.Text = null;

String commandTextDelete = comboBox1.Text;

// 创建SqlCommand命令

SqlCommand cmdDelete= new SqlCommand(commandTextDelete, connection);

cmdDelete.Parameters.AddWithValue("@115", textBox3.Text);

//执行SqlCommand命令并检查结果

int result = cmdDelete.ExecuteNonQuery();

if (result == 1)

{

textBox2.Text = "删除记录操作成功.";

//Console.WriteLine("删除记录操作成功.");

}

else

{

textBox2.Text = "删除记录操作失败.";

// Console.WriteLine("删除记录操作失败.");

}

}

private void button3_Click_1(object sender, EventArgs e)

{

textBox2.Text = null;

String commandTextInsert = comboBox1.Text;

SqlCommand cmdInsert= new SqlCommand(commandTextInsert, connection);

cmdInsert.Parameters.AddWithValue("@姓名", "周七");

cmdInsert.Parameters.AddWithValue("@学号",

005);

cmdInsert.Parameters.AddWithValue("@语文", 105);

cmdInsert.Parameters.AddWithValue("@数学", 115);

cmdInsert.Parameters.AddWithValue("@英语", 124);

// 执行SqlCommand命令并检查结果

int result = cmdInsert.ExecuteNonQuery();

if (result == 1)

{

textBox2.Text = "插入记录操作成功.";

//Console.WriteLine("插入记录操作成功.");

}

else

{

textBox2.Text = "插入记录操作失败.";

// Console.WriteLine("插入记录操作失败.");

}

}

private void button4_Click_1(object sender, EventArgs e)

{

textBox2.Text = null;

String connectonString= @"Server=.\SQLEXPRESS;Integrated Security=SSPI;Persist Security Info=False;

Initial Catalog=sql;Data Source=I-PC;";

// String connectonString = @"Server=.\SQLEXPRESS;DataBase=C:\NORTHWND.MDF; Integrated Security = SSPI;";

// String connectonString = @"Data Source = .\SQLEXPRESS; Initial Catalog= c:\NORTHWND.MDF; Integrated Security = True;",

System.Data.SqlClient.SqlConnection connection1= new SqlConnection(connectonString);

connection1.Open();

//String commandTextUpdate = "Update Region Set RegionDescription = @name WHERE RegionID = @id";

// 创建SqlCommand命令

SqlCommand cmdUpdate= new SqlCommand("Update 成绩表Set 语文=@语文WHERE 学号=@学号", connection1);

cmdUpdate.Parameters.AddWithValue("@学号",002);

cmdUpdate.Parameters.AddWithValue("@语文",131);

// 执行SqlCommand命令并检查结果

int result = cmdUpdate.ExecuteNonQuery();

if (result == 1)

{

textBox2.Text = "更新记录操作成功.";

//Console.WriteLine("更新记录操作成功.");

}

else

{

textBox2.Text = "更新记录操作失败.";

//Console.WriteLine("更新记录操作失败.");

}

}

private void button6_Click_1(object sender, EventArgs e)

{

SqlCommand cmdQuery= new SqlCommand("Ten Most Expensive Products", connection);

https://www.doczj.com/doc/f410805981.html,mandType= CommandType.StoredProcedure;

// 执行SqlCommand命令并返回结果

SqlDataReader reader= cmdQuery.ExecuteReader();

textBox2.Text= "Products表中最贵的10个商品的信息:" + "\r\n";

textBox2.Text= " 产品名称\t\t\t单价"+ "\r\n";

//Console.WriteLine("Products表中最贵的10个商品的信息:");

// Console.WriteLine(" 产品名称\t\t\t单价");

// 通过循环列表显示查询结果集

while (reader.Read())

{

string rowInfo= reader[0].ToString().PadRight(30) + "\t" + reader[1] + "\r\n";

textBox2.Text +=rowInfo;

}

//关闭查询结果集

reader.Close();

}

private void button8_Click(object sender, EventArgs e)

{

connection.Close();

textBox2.Text = "数据库已关闭!";

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {

}

}

}

数据库连接有一个小技巧:命名一个udl文件测试想要连接的数据库,能够得到连接数据库时所需要的计算机信息和数据库信息:

C# WinForm自定义控件开发实例

C# WinForm自定义控件开发实例 最近做一个图象的采集,需要一个图形的选择控件,但是在.net下没有类似vb中的shape控件,所以考虑了自己写一个控件。下面我将从头创建控件,这个控件主要是用来选择图形的Rectangle,有一下几个属性Color BorderColor:边框颜色,Color BackColor:背景颜色,bool ReSizeble:是否可移动,Rectangle SelectRectangle:选择区域。 打开vs2003(我用的这个版本),新建一个c#控件库,ok,拷贝如下代码到你的代码里。using System;using System.Collections;using https://www.doczj.com/doc/f410805981.html,ponentModel;using System.Drawing;using System.Data;using System.Windows.Forms;namespace WindowsExtendedControls{ /// /// 控件/// public class ShapeEx : System.Windows.Forms.Control { /// /// 必需的设计器变量。/// /// private Color _BorderColor=new Color(); private Color _BackColor=new Color(); private bool _ReSizeble; private Point _SelfLocation=new Point(); private Point _MouseLocation=new Point(); private int _SelfWidth; private int _SelfHeight; private int _SelectSelctedIndex;//0-8,0:SizeAll private Rectangle

用T-SQL语句完成创建和管理数据库操作练习

-创建数据库语句语法: CREATE DATABASES 据库名 [ON [PRIMAR Y] {(NAME^据文件的逻辑名称, FILENAME‘数据文件的路径和文件名’,(要包含文件扩展名)SIZE二数据文件的初始容量,(不能小于Model数据库的初始文件大小) MAXSIZE二数据文件的最大容量, FILEGROWTH数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, FILENAMES务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, FILEGROWTH事务日志文件的增长量)儿…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT FROM master..sysdatabases WHERE name =' 数据库名')

DROP DATABASE数据库名 GO 修改数据库操作语句: ALTER DATABAS数据库名 {[add file 文件描述][to filegroup 文件组名] 新增数据文件I [add log file 文件描述] 新增日志文件 I [remove file 逻辑文件名]删除数据库文件 I [add filegroup 文件组名]新增文件组 I [remove filegroup 文件组名] 删除文件组 I [modify file 文件修改内容描述]修改数据文件属性} 查看数据库文件属性 EXECSp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 据库名 ON PRIMAR Y (FILENAME=') 说明:附加数据库只需指定数据库的主数据文

用T-SQL语句完成创建与管理数据库操作练习

·创建数据库语句语法: CREATE DATABASE 数据库名 [ON [PRIMARY] {(NAME=数据文件的逻辑名称, ‘数据文件的路径和文件名’, (要包含文件扩展名) SIZE=数据文件的初始容量,(不能小于Model数据库的初始文件大小) MAXSIZE=数据文件的最大容量, 数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, '事务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, 事务日志文件的增长量) }[,…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = '数据库名') DROP DATABASE 数据库名 GO

修改数据库操作语句: ALTER DATABASE 数据库名 {[add file 文件描述] [to 文件组名] 新增数据文件 |[add log file 文件描述] 新增日志文件 |[remove file 逻辑文件名] 删除数据库文件 |[add 文件组名] 新增文件组 |[remove 文件组名] 删除文件组 |[modify file 文件修改内容描述] 修改数据文件属性} 查看数据库文件属性 EXEC sp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database 数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 数据库名 ON PRIMARY (’’) 说明:附加数据库只需指定数据库的主数据文件。 FOR ATTACH 如果移动过数据库文件,则需要指出所有移动过的文件。 用存储过程也可以附加数据库:

Access窗体操作技巧题

Access窗体操作题 2、考生文件夹下存在一个数据库文件"Access3.mdb",里面已经设计好窗体对象"教师"。试在此基础上按照以下要求补充窗体设计: (1)在窗体的窗体页眉节区位置添加一个标签控件,其名称为"bTitle",标题显示为"教师奖励信息";(2)在主体节区位置添加一个选项组控件,将其命名为"opt",选项组标签显示内容为"奖励",名称为"bopt"; (3)在选项组内放置二个单选按钮控件,选项按钮分别命名为"opt1"和"opt2",选项按钮标签显示内容分别为"有"和"无",名称分别为"bopt1"和"bopt2"。 (4)在窗体页脚节区位置添加两个命令按钮,分别命名为"bOk"和"bQuit",按钮标题分别为"确定"和"退出"; (5)将窗体标题设置为"教师奖励信息"。 注意:不允许修改窗体对象"教师"中已设置好的属性。 等级:3 难度:3 知识点:access知识点/窗体题 3、考生文件夹下存在一个数据库文件"Access3.mdb",里面已经设计好窗体对象"教师"。试在此基础上按照一下要求补充窗体设计: (1)在窗体的窗体页眉节区位置添加一个标签控件,其名称为"bTitle",标题显示为"教师基本信息输出";(2)在主体节区中"年龄"标签右侧的文本框显示内容设置为"年龄"字段值,并将文本框名称更名为"tAge";(3)在主体节区添加一个标签控件,该控件放置在距左边0.1厘米、距上边5.0厘米,标签显示内容为"出生地",名称为"bMem"; (4)在窗体页脚节区位置添加两个命令按钮,分别命名为"bOk"和"bQuit",按钮标题分别为"确定"和"退出"; (5)将窗体标题设置为"教师基本信息"。 注意:不允许修改窗体对象"教师"中未涉及的控件和属性。

用TSQL语句完成创建与管理数据库操作练习

CREATE DATABASE 数据库名 [ON [PRIMARY] {(NAME= 数据文件的逻辑名称, FILENAME=‘ 数据文件的路径和文件名 ' , (要包含文件扩展名)SIZE= 数据文件的初始容量,(不能小于Model 数据库的初始文件大小) MAXSIZE= 数据文件的最大容量, FILEGROWTH二数据文件的增长量)}[,…n] LOG ON {(NAME= 事务日志文件的逻辑名称, FILENAME=' 事务日志文件的物理名称', SIZE= 事务日志文件的初始容量, MAXSIZE= 事务日志文件的最大容量, FILEGROWTH二事务日志文件的增长量)}[,…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = '数据库名') DROP DATABASE 数据库名 GO

ALTER DATABASE 数据库名 [add file 文件描述] [to filegroup 文件组名] 新增数据文件[add log file 文件描述] 新增日志文件 [remove file 逻辑文件名] 删除数据库文件 [add filegroup 文件组名] 新增文件组 [remove filegroup 文件组名] 删除文件组 [modify file文件修改内容描述]修改数据文件属性} 查看数据库文件属性 EXEC sp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database 数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 数据库名 ON PRIMARY (FILENAME= '' ) 说明:附加数据库只需指定数据库的主数据文件。 FOR ATTACH 用存储过程也可以附加数据库: sp_attach_db 数据库名,filename= '' 如果移动过数据库文件,则需要指出所有移动过的文 件。

SQL 第3章 数据库的创建和管理(实训1新)

第3章数据库的创建和管理 动手操作一:查看系统数据库信息 任务1:在“资源对象管理器”中查看服务器中的系统数据库,并回答有哪些数据库。 系统数据库:master、model、msdb、tempdb 任务2:在“资源对象管理器”中查看各类数据库的属性。 任务3:在查询窗口中使用命令查看服务器中的系统数据库信息。

动手操作二:用界面方式创建数据库 任务1:在E盘以班级号创建一个文件夹。 任务2:在“资源对象管理器”中创建一个名为jxgl的数据库。 任务3:查看JXGL数据库对象和数据库文件。 任务4:在jxgl库中增加1个次文件组user1,并在其中增加一个数据文件j4_data,属性自定义。在jxgl中增加1个日志文件log2,属性自定义。

动手操作三:用命令创建数据库 任务1:创建一个默认参数的数据库db1。 任务2:查看db1数据库的信息,请说出该数据库中有哪些文件?逻辑文件名、磁盘文件名各是什么?它们的大小是多少?

有主数据文件和日志文件。逻辑文件名:主数据文件db1,日志文件db1_log。磁盘文件名:主数据文件db1.mdf, 日志文件db1_log.LDF。主数据文件:初始大小3MB,增量为1MB,不限制增长。日志文件:初始大小1MB,增量为10%,最大值为2,097,152。 任务3:按下列表格中的要求创建一个名为TESTDB的数据库。 create database TESTDB on primary (name=TD1,filename='E:\SQL\TD1.MDF', size=5MB,maxsize=20MB,filegrowth=10%), (name=TD2,filename='E:\SQL\TD2.NDF', size=10MB,maxsize=30MB,filegrowth=2MB), filegroup User1 (name=TD3,filename='E:\SQL\TD3.NDF', size=5MB,filegrowth=2MB) log on (name=TLOG,filename='E:\SQL\TLOG.LDF', size=4MB,filegrowth=20%)

常用窗体控件

常用窗体控件: String str=””; Foreach(Control item in this.Controls) { If(https://www.doczj.com/doc/f410805981.html,.IndexOf(“checkBox”)>0) { CheckBox ck=(CheckBox)Item; If(ck.Checked) { Str=ck.Text+”,”; } } }

高级窗体控件: 1.菜单控件MenuStrip 使用步骤: ①在Windows窗体中添加一个MenuStrip控件 ②单击该控件的Items属性,弹出“项集合编辑器”对话框 ③可以添加MenuItem子项。子项的子菜单 选择其“MenuItem”选项,单击其 DropDownItems属性,弹出相接对话框 ①选中要添加右键功能的Form或者控件,打开控件的设计页面 ②从工具箱中找到ContextMenuStrip控件,将这个控件拖曳到Form或者控件的设计页 面上。这时系统就会在这个页面下面自动创建一个contextMenuStrip1控件,如果你想在这个页面添加多个菜单,那么你也可以拖曳多个这种控件到设计页面上。 ③按照你的要求将这些ContextMenuStrip控件改成你需要的名称。然后, 选择需要右 键弹出菜单的页面,比如你当前编辑的页面中有一个DataGrid,一个T reeList,而你想分别为这两个控件添加不同的右键菜单。那么你就可以先选择DataGrid控件,然后在这个控件的属性中找到ContextMenuStrip属性,点击该属性,系统会自动查找你拖曳到当前页面的所有ContextMenuStrip控件并将这些控件罗列在这个属性的下拉菜单中。你可以选择一个你预先定义好的ContextMenuStrip控件。这样就为这个DataGrid控件设置了右键菜单。其他控件也使用同样的方法添加。 ④定义你的菜单,在为控件分配完菜单之后,你就可以定义单个的菜单。这时你可以 选中一个ContextMenu控件。系统会自动在编辑页面的上面现一个可编辑的动态菜

实验七创建和操作数据库对象

实验报告 课程:数据库原理与实用技术实验 实验7 创建和操作数据库对象 实验7-1 存储过程 1、使用不带参数的存储过程 (1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系 create proc my_proc as select学号,姓名,性别,年龄,所在院系from学生表 where所在院系='计算机'and性别='女' (2)执行存储过程 (3)修改存储过程,使其能够查询计算机系女生的所有基本信息 alter proc my_proc as select*from学生表 where所在院系='计算机'and性别='女' 2、带输入参数的存储过程 (1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系 create proc my_procsex @sex char(2) as select学号,姓名,性别,年龄,所在院系from学生表where性别=@sex (2)执行存储过程 exec my_procsex @sex='男' 3、带输入/输出参数的存储过程 (1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息) create proc my_procage @name char(10),@age int OUTPUT as if not exists(select*from学生表where姓名=@name) return-155 select年龄from学生表where姓名=@name (2)执行存储过程 declare @once_age int, @status int exec @status=my_procage @name='陈忠刚', @age=@once_age output if @status=-155 print'对不起,您输入的名字查找失败!' print'the output data is:'+convert(varchar(10),@once_age)

C# WinForm窗体及其控件的自适应

C# WinForm窗体及其控件的自适应 C# WinForm窗体及其控件自适应各种屏幕分辨率 一。说明 我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可。因为窗体上控件的位置和大小是相对于自己所在的窗体的,也就是所谓的窗口坐标。 在这里我们只考虑相对于自己窗体的窗口坐标更简单,也就是成比例变化。为了多个窗体共用,我在这里创建一个类AutoSizeFormClass ,1.使用它去记录窗体和其控件的初始位置和大小,2.根据窗体变化了的大小,成比例地实现其控件的水平和垂直方向的变化,也就是自适应。 二。使用方法 使用方法很简单, 1.把自适应的类整体复制到你的工程命名空间里, 然后在需要自适应的窗体中做3步即可: 2.声明自适应类实例。 3.为窗体添加Load事件,并在其方法Form1_Load中,调用类的初始化方法,记录窗体和其控件初始位置和大小 4.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,调用类的自适应方法,完成自适应 三。完整代码如下: (一)。自适应窗体的代码: using System; using System.Collections.Generic;

using https://www.doczj.com/doc/f410805981.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { //1.声明自适应类实例 AutoSizeFormClass asc = new AutoSizeFormClass(); public Form1() { InitializeComponent(); } //2. 为窗体添加Load事件,并在其方法Form1_Load中,调用类的初始化方法,记录窗体和其控件的初始位置和大小 private void Form1_Load(object sender, EventArgs e) { asc.controllInitializeSize(this); } //3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,调用类的自适应方法,完成自适应 private void Form1_SizeChanged(object sender, EventArgs e) { asc.controlAutoSize(this); } } }

winform窗体和控件自适应

有时winform窗体的大小会改变,此时窗体上的控件会很混乱,如何可以使控件自适应窗体呢?以 下就是方法: 1、首先在自己的命名空间里先建一个Autosize.cs类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace 自己的命名空间 { class Autosize { public void setTag(Control cons) { foreach (Control con in cons.Controls) { con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size; if (con.Controls.Count > 0) setTag(con); } } string[] mytag; public void setControls(float newx, float newy, Control cons) { foreach (Control con in cons.Controls) { if (con.Tag != null) { mytag = con.Tag.ToString().Split(new char[] { ':' }); float a = Convert.ToSingle(mytag[0]) * newx; con.Width = (int)a; a = Convert.ToSingle(mytag[1]) * newy; con.Height = (int)(a); a = Convert.ToSingle(mytag[2]) * newx; con.Left = (int)(a); a = Convert.ToSingle(mytag[3]) * newy; con.Top = (int)(a); Single currentSize = Convert.ToSingle(mytag[4]) * Math.Min(newx, newy); }

创建数据库和表

数学与信息技术学院实验报告 实验课程名称:SQL语言基础实验 实验项目名称:实验二创建数据库和表 专业班级: 学号: 姓名: 指导教师:

实验一创建数据库和表 【实验目的】 (1)了解MySQL数据库的存储引擎的分类; (2)了解表的结构特点; (3)了解MySQL的基本数据类型; (4)了解空值概念; (5)学会使用SQL界面工具中创建数据库和表; (6)学会使用SQL语句创建数据库和表。 【实验容及步骤】 一,实验容 实验题目 创建用于企业管理的员工管理数据库,数据库名为YGGL,包含员工的信息、部门信息及员工的薪水信息。数据库YGGL包含下列3个表: (1)Employees:员工信息表: (2)Departments:部门信息表: (3)Salary:员工薪水情况表。 二,实验步骤 1,使用命令行为方式创建数据库YGGL

打开MySQL Command Line Client,输入管理员密码登录,使用CREATE语句创建YGGL数据库: Creat database YGGL; 2,使用SQL语句在YGGL数据库中创建表Employees 执行创建表employees的SQL语句: 用同样的方法在数据库YGGL中创建表Salary。 创建一个结构与employees表结构相同的空表Employees(): Creat table Employees0LIKE Employees; 3,使用SQL语句删除表和数据库 删除表employees: Drop table employees; 删除数据库YGGL Drop database YGGL;

WinForm界面布局

WinForm界面布局 Dock&Anchor Dock和Anchor是水火不容的,同时给控件设置Dock和Anchor属性时后设置的会覆盖前面的设置。 Dock 我初接触WinForm的时候发现控件的Width和Height只能是int,不能设置为百分比,那个时候就想子控件如何跟着父控件而变化呢?父控件变大就变大,而且还填满那个区域。甚至以为这个需要通过代码来解决,如是在SizeChanged事件里…… 后来才发现我要的就是Dock给的,Dock是停靠的意思。Dock属性的类型是DockStyle枚举: 1:public enum DockStyle 2:{ 3:None=0, 4:Top=1, 5:Bottom=2, 6:Left=3, 7:Right=4, 8:Fill=5 9:} 默认是None,当为Left的时,就表示子控件停靠在父控件的左边区域,并把左区域填充满: 上图中的Panel总是会停靠在Form的左边区域,不管如何调整Form的高度,它总是能把左边区域填满。Dock麻烦的地方在于多个控件碰到一起时,比如有两个Panel都设置为Left 该怎么办?我们会发现向父控件的Controls集合中添加子控件,越晚添加具有更高的“优先级”(不知道有没有这个说法,这是我杜撰的)。这里的优先级指的是,子控件“优先级”越高,

越靠近父控件边缘,其他子控件就得避让: [我的见解;通过选中控件,一般是pannel,右键选择置为底层,来决定控件间的优先级] this.Controls.Add(this.panel1); this.Controls.Add(this.panel2); Panel2后添加进去,所以它具有更高的优先级,更靠近Form的边缘。这个规则不仅仅对于Dock都设为Left的有效,对Dock属性不同,但是碰到一起的子控件也适用: 1:this.panel1.Dock=DockStyle.Left; 2:this.panel2.Dock=DockStyle.Left; 3:this.panel3.Dock=DockStyle.Top; 4: 5:this.Controls.Add(this.panel1); 6:this.Controls.Add(this.panel2); 7:this.Controls.Add(this.panel3); panel3的Dock设置为Top,最后添加到Controls集合中,所以具有最高的优先级,其他两个panel都得避让:

C#给Winform的button等控件添加快捷键三种方法

C# 给Winform 的button 等控件添加快捷键三种方法 第一种:Alt + *(按钮快捷键) 在大家给button 、label 、menuStrip 等控件设置Text 属性时在名字后边加& 键名就可以了, 比如button1.text= "确定(&O)" 。就会有快捷键了,这时候按Alt+O 就可以执行按钮单击事件。 第二种:Ctrl+* 及其他组合键 在WinForm 中设置要使用组合键的窗体的KeyPreview( 向 窗体注册键盘事件)属性为True; 然后使用窗体的KeyDown 事件(在首次按下某个键时发生). 实例代码: private void ***_KeyDown(object sender, KeyEventArgs e) {

if (e.KeyCode == Keys.F && e.Control) button1.PerformClick(); // 执行单击button1 的动作 注:1、***代表窗体名称,大家可以看一下” Keys ”的枚举参数,以实现自己需要 2、还有一个问题,当使用Ctrl + * 快捷键时,对于焦点在可 写的控件(如TextBox )上时,可能会将* 键值同时输入,则需要加另一句话将Handled 设置为true , 以取消KeyPress 事件。 即: private void ***_KeyDown(object sender, KeyEventArgs e) {

if (e.KeyCode == Keys.F && e.Control) e.Handled = true; //将Handled 设置为true ,指示已经处理过KeyPress 事件button1.PerformClick(); 第三种: 还是以button 为例。给form 添加一个contextMenuStrip1 将其邦定到button 上,假设为button1 。给 contextMenuStrip1 添加一个item ,然后为它设置快捷键(就是你想加在button 上的快捷键),并且将它的Visible 属性设 false 。这样,button1 的快捷键设置成功。

数据库与表的创建和使用

数据库与表的创建和使用 一、常用字段类型 1、字符型 2、数值型 3、日期型 4、逻辑型(T是,F否) 5、备注型 二、项目管理器 项目管理器是VFP中处理数据和对象的主要工具。项目管理器是系统的“控制中心”。一个项目是文件、数据、文档、对象的集合,项目文件以扩展名*.pjx保存。 创建一个项目文件的方法 1、CREATE PROJECT 项目文件名或? 2、文件—新建 3、工具栏“新建”按钮 二、数据库与表的概念 在VFP中有两种表:一种是自由表,它独立于任何数据库;一种是数据库表,它是数据库的一部分。 数据库和表是两个不同的概念。表是处理数据、建立关系数据库的应用程序的基础单元,它用于存储收集来的各种信息。而数据库是表的集合,它控制这些表协同工作,共同完成特定任务。 本节重点:数据库的创建和使用,数据库表的创建和使用,表的扩展属性,数据库表之间的关系的创建。 三、数据库的创建(*.dbc)

1、使用界面方式创建数据库:项目管理器、“新建”按钮 2、使用命令方式创建数据库 CREATE DATABASE 数据库文件名或? 四、打开数据库 OPEN DATABASE 数据库名或? 五、设置当前数据库 SET DATABASE TO 数据库名 六、修改数据库 MODIFY DATABASE 数据库文件名或? 七、关闭数据库 CLOSE DATABASE &&关闭当前数据库 CLOSE DATABASE ALL &&关闭所有数据库 八、删除数据库 DELETE DATABASE 数据库文件名或? 数据库表的创建和使用(*.dbf) 在VFP中,每个数据表可以有两种存在状态:自由表(即没有和任何数据库关联的*.dbf文件)或数据库表(即与数据库关联的*.dbf 文件)。属于某一数据库的表称为“数据库表”;不属于任何数据库而独立存在的表称为自由表。数据库表和自由表可以相互转换。 一、数据库表的创建

Winform常用控件

1.数据显示:DataGridView(DataGridView 控件提供用来显示数据的可自定义表。使用 DataGridView 类,可以自定义单元格、行、列和边框)。 文本编辑:TextBox(显示设计时输入的文本,它可由用户在运行时编辑或以编程方式更改)。 RichTextBox(使文本能够以纯文本或 RTF 格式显示)。MaskedTextBox(约束用户输入的格式)。 2.信息显示:Label(显示用户无法直接编辑的文本)。LinkLabel(将文本显示为 Web 样式的链接,并在用户单击该特殊文本时触发事件。该文本通常是到另一个窗口或网站的链接)。 StatusStrip(通常在父窗体的底部使用有框架的区域显示有关应用程序的当前状态的信息)。ProgressBar(向用户显示操作的当前进度)。 3.从列表中选择:CheckedListBox(显示一个可滚动的项列表,每项旁边都有一个复选框)。 ComboBox(显示一个下拉式项列表)。DomainUpDown(显示用户可用向上和向下按钮滚动的文本项列表)。ListBox(显示一个文本项和图形项(图标)列表)。ListView(在四个不同视图之一中显示项。这些视图包括纯文本视图、带有小图标的文本视图、带有大图标的文本视图和详细信息视图)。NumericUpDown(显示用户可用向上和向下按钮滚动的数字列表)。TreeView (显示一个节点对象的分层集合,这些节点对象由带有可选复选框或图标的文本组成)。 4.图形显示:PictureBox(在一个框架中显示图形文件(如位图和图标)。 5.图形存储:ImageList(充当图像储存库。ImageList 控件和及其包含的图像可以在不同的应用程序中重用)。 6.值的设置:CheckBox(显示一个复选框和一个文本标签。通常用来设置选项)。CheckedListBox(显示一个可滚动的项列表,每项旁边都有一个复选框)。RadioButton(显示一个可打开或关闭的按钮)。TrackBar(允许用户通过沿标尺移动“滚动块”来设置标尺上的值)。 7.数据的设置:DateTimePicker(显示一个图形日历以允许用户选择日期或时间)。MonthCalendar(显示一个图形日历以允许用户选择日期范围)。 8.对话框:ColorDialog(显示允许用户设置界面元素的颜色的颜色选择器对话框) ColorDialog 显示允许用户设置界面元素的颜色的颜色选择器对话框。 FontDialog 显示允许用户设置字体及其属性的对话框。 OpenFileDialog 显示允许用户定位文件和选择文件的对话框。 PrintDialog 显示允许用户选择打印机并设置其属性的对话框。 PrintPreviewDialog 显示一个对话框,该对话框显示 PrintDocument 组件在打印出来后的外观。 FolderBrowserDialog 显示用来浏览、创建以及最终选择文件夹的对话框SaveFileDialog 显示允许用户保存文件的对话框。 9.菜单控件: MenuStrip 创建自定义菜单 ContextMenuStrip Bitmap 创建自定义上下文菜单。 10.命令: Button Bitmap 启动、停止或中断进程。 LinkLabel 将文本显示为 Web 样式的链接,并在用户单击该特殊文本时触发事件。该文本通常是到另一个窗口或网站的链接。 NotifyIcon 在表示正在后台运行的应用程序的任务栏的状态通知区域中显示一个图标。

C#制作WinForm用户自定义控件实例教程

C#制作WinForm用户自定义控件实例教程 本文将教大家如何使用C#开发WinForm用户自定义控件,自定义控件有好多好处,下面请跟本文一同来学习下吧。 .Nt用户自定义控件继承UserControl类,设计很简单的,像平时在窗体上拖控件一样。 操作步骤: 1. 建立一个工程,添加用户控件。 2.在打开的窗体内输入控件名称,如:"ucButton",按确定按钮。接下来在空白区域拖放3个.Net控件。 如下图:

3.代码 C# code ///

/// C#.Net 设计用户自定义控件 /// /// [ToolboxBitmap(typeof(CustomControl.ucButton), "ucButton.bmp")] public partial class ucButton : UserControl { private bool _IsFocused = false; //标记按钮是否为焦点状态 public ucButton() { InitializeComponent(); this.DoHideFocusedTag(); this.MyCatpionText = https://www.doczj.com/doc/f410805981.html,; } private EventHandler _OnButtonClick = null; private string _MyCatpionText = "ucButton1"; /// /// 按钮标题 /// [EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)] [DefaultValue("ucButton1")] public string MyCatpionText { get { return _MyCatpionText; } set { _MyCatpionText = value; lblCaption.Text = _MyCatpionText; } } /// /// 用户自定义Click事件 /// [EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)] public event EventHandler OnButtonClick { add { _OnButtonClick = new EventHandler(value); } remove { _OnButtonClick -= new EventHandler(value); } } private void lblCaption_Click(object sender, EventArgs e) { //转移Click事件, 触发用户自定义事件 if (_OnButtonClick != null) _OnButtonClick(this, e); } private void lblCaption_MouseDown(object sender, MouseEventArgs e) { if (_IsFocused) { lblCaption.Font = new Font(lblCaption.Font.FontFamily, lblCaption.Font.Size, FontStyle.Bold); } } private void lblCaption_MouseUp(object sender, MouseEventArgs e) { if (_IsFocused) { lblCaption.Font = new Font(lblCaption.Font.FontFamily, lblCaption.Font.Size, FontStyle.Regular); } } private void ucButton_SizeChanged(object sender, EventArgs e) { lblUnderLine.Top = this.Height - 1; lblUnderLine.Width = this.Width - 15; } /// /// 还原按钮状态 /// public void DoHideFocusedTag() { this.pictureBox1.Image = global::vjsdn.CustomControl.Properties.Resources.GrayTag; this.lblUnderLine.Visible = false; lblCaption.ForeColor = Color.Black; } /// /// 设计按钮为焦点状态 /// public void DoShowFocusedTag() { this.pictureBox1.Image =

入门如何创建一个数据库和数据库表

主题:mysql:入门如何创建一个数据库和数据库表 作者:huaxia11 发表时间:2010-8-6 22:13:00 楼主 了解了一些最基本的操作命令后,我们再来学习如何创建一个数据库和数据库表 。 1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql| | test | +----------+ 3 rows in set (0.00 sec) 2、创建一个数据库abccs mysql> CREATE DATABASE abccs; 注意不同操作系统对大小写的敏感。 3、选择你所创建的数据库 mysql> USE abccs Database changed 此时你已经进入你刚才所建立的数据库abccs. 4、创建一个数据库表 首先看现在你的数据库中存在什么表: mysql> SHOW TABLES; Empty set (0.00 sec) 说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable: 我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生 日期、出生城市。 mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), -> birth DATE, birthaddr VARCHAR(20)); Query OK, 0 rows affected (0.00 sec) 由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20

[Word]数据库基础实验二 Access数据库中查询、窗体和报表的创建

[Word]数据库基础实验二 Access数据库中查询、窗体和 报表的创建 实验二 Access数据库中查询、窗体和报表的创建 一、实验目的 1. 掌握INSERT、DELETE和UPDATE命令。 2. 掌握SELECT命令。 二、实验内容 1. 在Access中,执行SQL命令只能查询视图中进行。操作如下: (1)打开数据库管理器,选中“查询”对象,如图6.1所示: 图6.1查询设计器 (2)在查询设计器中,在“设计视图创建查询”的设计器中,在菜单“视图”中选择“SQL视图”。如图6.3 、图6.3 所示。 在SQL编辑器中,可以输入各种设计好的SQL语句,执行得到结果。

图6.2查询设计视图 图6.3查询设计视图 2. 用SQL中的数据更新命令对Test1.mdb数据库中表Teachers2进行操作。 (1)用INSERT命令插入一条新的记录。 600001 杨梦女 59 66/04/22 YES 1660 210 (2)用INSERT命令插入一条新的记录。 600002 罗贤兴 52 (3) 用DELETE命令删除姓名为关红梅的记录。 (4)用DELETE命令删除年龄小于36且性别为“女”的记录。 (5)用对表中工龄超过25年的职工加20%元工资。说明:下面所有的实验都是针对Test1.mdb数据库中的表Teachers和Students。

3. 直接写出下列SELECT语句,并在一空查询的SQL视图中逐一输入这些命令运行。 (1)查询所有教师的基本信息。 (2)查询教师的教师号、姓名、性别和年龄 (3)查询教师的教师号、姓名和实发工资。 (4)查询教师的人数和平均实发工资。 (5)查询华成的基本情况。 (6)查询所有男教师的基本信息。 (7)查询90年以前参加工作的所有教师的教师号、姓名和实发工资。 (8)查询所有不姓高的学生的基本情况。 (9)查询男女生的最低分、最高分和平均分数 (10)查询男女职工的最低工资、最高工资和平均工资(工资是指实发工资)。 (11)查询所有党员的教师号和姓名,并且按年龄从大到小排列。 (12)查询党员和非党员的人数和平均年龄 4. 连接查询。直接写出下列SELECT 语句,并在一空查询的SQL视图中逐一输入这些命 令运行。 (1)请查询学号为"010002"的学生的教师的教师号、姓名和性别。 (2)请查询每个教师的教师姓名和学生人数。 (3)请查询每一个教师的姓名以及所有学生、最低分、最高分和平均分。 5. 使用Access提供的“使用向导创建查询”分别为3.1和3.2题创建查询,并仔细查 看所产生的SELECT命令。 6. 使用Access提供的“在设计视图中创建查询”分别为3.3‐3.10和 4.1‐4.3题创 建查询,并仔细查看所产生的SELECT命令。

相关主题
文本预览
相关文档 最新文档