实验七 ADO与SQLServer编程一
- 格式:doc
- 大小:59.00 KB
- 文档页数:4
实验实验一SQL语言基础——学会使用Insert、update、delete和select语句实验目标本动手实验帮助学习者学会使用Insert、update、delete和select语句对数据库中的表进行操作。
实验步骤一、向表格中插入数据(insert)SQL语言使用insert语句向数据库表格中插入或添加新的数据行。
Insert 语句的使用格式如下:insert into tablename(first_column,st_column)values(first_value,st_value);简单来说,当向数据库表格中添加新记录时,在关键词insert into后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。
最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值二、更新记录(update)SQL语言使用update语句更新或修改满足规定条件的现有记录。
Update语句的格式为:update tablename set columnname=newvalue[,nextcolumn= newvalue2...]where columnname OPERATOR value[and|or column OPERATOR value];使用update语句时,关键一点就是要设定好用于进行判断的where条件从句。
三、删除记录(delect)SQL语言使用delete语句删除数据库表格中的行或记录。
Delete语句的格式为:delete from tablenamewhere columnname OPERATOR value[and|or column OPERATOR value];简单来说,当需要删除某一行或某个记录时,在delete from关键词之后输入表格名称,然后在where从句中设定删除记录的判断条件。
注意,如果用户在使用delete语句时不设定where从句,则表格中的所有记录将全部被删除。
ADO连接SQL Server 2008 Express方法总结使用ADO连接微软SQL Server数据库,根据连接的类型有多种连接字符串,并且有些字符串的效果是一样的。
目前已经经过VS2008测试成功的连接字符串说明如下:(1)第一种:指定SQL Server 2008 Express安装的计算机名称“Provider=SQLNCLI10;Server=Hostname\\SQLEXPRESS;Database=DBName; Uid=UserName;Pwd=Password”其中:SQLNCLI10也可以替换为SQLOLEDB。
Hostname为安装了SQL Server 2008 Express的计算机名称,\\SQLEXPRESS 是安装SQL Server 2008 Express的实例名称,数据库安装时将用SQLEXPRESS 作为缺省的实例名称,如果指定了其它实例名,则需要做相应的替换。
DBName为要连接的数据库名称。
UserName和Password分别为连接数据库的用户名和密码。
如果指定信任连接,则可以在最后增加字符串“;Integrated Security=SSPI”或者“;Trusted_Connection=yes”。
(2)第二种:指定SQL Server 2008 Express安装的计算机IP地址直接将上面字符串中的Hostname替换为对应的IP地址(如192.168.1.5)即可,如果IP地址为127.0.0.1,则连接本地的SQL Serve 2008且实例名为SQLEXPRESS的数据库服务器。
需要特别注意的是,此种情况只在SQL Server Browser服务启动时有效。
需要注意的几点:(1)可能由于版本为EXPRESS的缘故,在连接字符串中必须指定形式为HostName\\实例名或者IPAddress\\实例名的形式,否则连接不成功,这可能区别于其它版本的数据库连接方式。
第24卷第3期 辽宁工程技术大学学报 2005年6月 V ol.24 No.3 Journal of Liaoning Technical University Jun. 2005收稿日期:2004-05-22基金项目:河北省交通厅 “九五”行业联合科技攻关项目(HG-950403)作者简介:邢文建(1965-),男,河北 南宫人,副教授,主要从事计算机应用方面研究。
本文编校:杨瑞华文章编号:1008-0562(2005)03-0407-03Delphi 中Ado 控件SQL Server 数据库开发邢文建1,马丽艳2,郭子平3(1.河北工程学院 教育技术中心,河北 邯郸 056038; 2.河北工程学院 信电学院,河北 邯郸 056038;3.邯郸市水利水电勘测设计研究院 信息部,河北 邯郸 056002)摘 要:在开发邯郸交通信息网络研究的项目中,涉及到对交通管理中心数据库的数据进行各种操作应用,如添加记录、删除记录和各种条件查询。
为了使Client/Server 方式的交通数据管理应用程序在安装发布中,数据库的初始化环节简便易用,在实施中采 用ADO 技术连接Sql Server 数据库,在应用程序的初始化模块中利用Sql Server 提供的系统账号和存储过程,完成该项目所用数 据库在Sql Server 的建立、特定账号和角色的初始化方面工作。
从而有效地避免用手工导入数据库可能造成的问题,使数据库建立 自动化,降低程序发布和设置难度。
关键词:存储过程;adoconnection ;adostoredproc ;adoquery ;控件 中图分类号:TP311.1 文献标识码:AUsing ADO technic empolder SQL server database programin environment of delphiXING Wen-jian 1;MA Li-yan 2;GUO Zi-ping 3(1. Center of Technique Education, Hebei University of Engineering, Handan 056038,China ;2. College of Information and Electrical Engineering,Hebei University of Engineering, Handan 056038,China ;3. Dept of Information ,Handan Design and Research Institute of Conservancy and Hydropower, HanDan 056002,China)Abstract :Developed software of Handan traffic net research, includes different operations,such as inserti-ng records 、deleting records and various of condition searches. In order to decrease the difficulties of cli e-nt/Server application’s database initialization, So with Microsoft Ado technical linking sql server datab-ase in this project, database’s system account and system stored procedure is used to establish thsseuser database and initialize the application’s database by some automatic procedures that Include establishing application’s database and database’s specific accounts and database’s role etc.To avoid importing applicat -ion’s database by sql server enterprise manager and reducing the difficulties of application setup. Key words :stored procedure ;adoconnection ;adostoredproc ;adoquery ;control0 引 言ADO 是Microsoft 为数据访问范例OLE DB 而设计,是一个便于使用的应用程序接口。
C 中使用ADO—NET连接SQLServer数据库C#中使用连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法问题描述:假设在数据库中存在以下两张数据表:User表,存放用户的基本信息,基本结构如下所示:类型说明ID_User int 自动增长字段,用作该表的主键UserName varcharUserDepart表,存放用户所拥有的部门(我们假设一个用户拥有多个部门,虽然听起来有点别扭,此处仅作示例,可以理解为一个用户拥有多个职位等等),该表的基本结构如下所示:类型说明ID_UserDepart int 自动增长字段,用作该表的主键用户编号 ID_User int部门编号 ID_Depart int向数据库中插入一条用户信息的时候,为了保证数据的一致性,必须使用事务的方式“同时”操作User表和UserDepart表。
先将用户姓名写入User表中,再将其所拥有的部门写入UserDepart表中,使用事务机制保证这两步操作要么同时成功,要么同时失败。
问题就出在:第一步操作完成后,我们并不知道该向第二步操作写入的ID_User的值是多少,因为这个值是SQL Server自动生成的。
解决思路:可以借助SELECT IDENT_CURRENT('User') AS …NewInsertID? 来查询最近一次插入User表的数据的自动编号的值。
程序实现:1 public struct Chaos_TranSQLCmd2 {3 /// <summary>4 /// 一条SQL语句5 /// </summary>6 public string strSQL;78 /// <summary>9 /// 标记该条SQL语句是否需要连接ID_User 10 /// </summary>11 public bool bNeedID;12 }131415 public void Chaos_ExecuteSqlTran(List<Chaos_TranSQLCmd>listTranSQLCmd,string strInsertID_SQL)16 {17 using (SqlConnection ChaosSqlConn = newSqlConnection(strSqlConnString))18 {19 SqlCommand ChaosSqlCmd = new SqlCommand(); 20ChaosSqlCmd.Connection = ChaosSqlConn; 21 ChaosSqlConn.Open();22 SqlTransaction ChaosSqlTran =ChaosSqlConn.BeginTransaction();23 ChaosSqlCmd.Transaction = ChaosSqlTran; 2425 try26 {27 string mID_User = ""; 2829 //先将数据插入User30 mandText = strInsertID_SQL; 31ChaosSqlCmd.ExecuteNonQuery(); 3233 //再获取ID_User34 DataSet ds = this.ExecAdapter("selectIDENT_CURRENT('PT_User') as 'ID'", "T"); 35 DataTable dt =ds.Tables["T"];36 if (dt.Rows.Count>0)37 {38 mID_User = dt.Rows[0]["ID"].ToString(); 39 }4041 for (int i = 0; i < listTranSQLCmd.Count; i++) 42 {43 //如果队列中的语句需要连接ID,则处理SQL语句后再执行 44 string strSQL = "";45 if (listTranSQLCmd[i].bNeedID==true) 46 {47 strSQL = string.Format(listTranSQLCmd[i].strSQL, mID_User); 48 }49 else50 {51 strSQL = listTranSQLCmd[i].strSQL; 52 }5354 mandText = strSQL; 55 ChaosSqlCmd.ExecuteNonQuery(); 56 }5758 //全部成功执行则提交59 mit();60 }61 catch (System.Data.SqlClient.SqlException Ex) 62 {63 //发生问题则回滚64 ChaosSqlTran.Rollback();65 throw new Exception(Ex.Message); 66 }67 }68 }测试代码如下:1 static void Main(string[] args)2 {3 try4 {5 List<DB_Operation.ChaosDbOprt.Chaos_TranSQLCmd>Chaos_SQLCmdList = newList<DB_Operation.ChaosDbOprt.Chaos_TranSQLCmd>();67 //构造SQL语句向User表中写入数据8 string strSQL = "insert into PT_User (UserName) values ('Lee')";910 //构造SQL语句向UserDepart表写入数据11 for (int i = 0; i < 10; i++) 12 {13 DB_Operation.ChaosDbOprt.Chaos_TranSQLCmd nCmd = newDB_Operation.ChaosDbOprt.Chaos_TranSQLCmd();14 if (i==6)15 {16 //构造错误SQL语句,使写入数据库的操作不能成功执行 17 nCmd.strSQL = "insert into PT_UserDepart (ID_User,ID_Depart) values ({0}," + "A String which can't be inserted as ID_Depart)";18 }19 else20 {21 //正常SQL语句22 nCmd.strSQL = "insert into PT_UserDepart (ID_User,ID_Depart) values ({0}," + i.ToString() + ")"; 23 }24 nCmd.bNeedID = true;25 Chaos_SQLCmdList.Add(nCmd);26 }2728 DB_Operation.ChaosDbOprt CDO = new DB_Operation.ChaosDbOprt();29 CDO.Chaos_ExecuteSqlTran(Chaos_SQLCmdList, strSQL); 3031 Console.WriteLine("数据写入成功~");32 Console.ReadLine();33 }34 catch (Exception ex)35 {36 Console.WriteLine("Error:\r\n"+ex.Message); 37 Console.ReadLine();38 }39 }规范化代码如下:1 #region 实现数据库事务的方法,实现以事务的方式将多条SQL语句同时写入数据库(其中某些语句依赖于第一条语句插入数据库后自动生成的ID)23 public struct Chaos_TranSQLCmd4 {5 /// <summary>6 /// 一条SQL语句,在需要添加ID的地方用"{0}"来代替7 /// 如:INSERT INTO PT_FeeItemDetails(ID_FeeItem,ID_ExamItem) VALUES ({0},005)等8 /// </summary>9 public string strSQL;1011 /// <summary>12 /// 标记该条SQL语句是否需要连接ID13 /// </summary>14 public bool bNeedID;15 }16 /// <summary>17 /// 该函数用于实现以事务的方式将多条SQL语句同时写入数据库(其中某些语句依赖于第一条语句插入数据库后自动生成的ID)18 /// </summary>19 /// <param name="strInsertID_SQL">需要先插入数据库中以产生ID的SQL语句</param>20 /// <param name="strTableName">需要首先插入数据库中以产生ID的数据表的名称,如"PT_FeeItem"等</param>21 /// <param name="listTranSQLCmd">需要连接ID的SQL语句的列表</param> 22 public void Chaos_ExecuteSqlTran_InsertID(string strInsertID_SQL,string strTableName, List<Chaos_TranSQLCmd> listTranSQLCmd) 23 {24 using (SqlConnection ChaosSqlConn = newSqlConnection(strSqlConnString))25 {26 SqlCommand ChaosSqlCmd = new SqlCommand(); 27ChaosSqlCmd.Connection = ChaosSqlConn;28 ChaosSqlConn.Open();29 SqlTransaction ChaosSqlTran = ChaosSqlConn.BeginTransaction();30 ChaosSqlCmd.Transaction = ChaosSqlTran;3132 try33 {34 string m_strID = "";3536 //先将数据插入User37 mandText = strInsertID_SQL; 38ChaosSqlCmd.ExecuteNonQuery(); 3940 string strSQL_Tmp = string.Format("SELECT IDENT_CURRENT('{0}') as 'ID'",strTableName);41 //再获取ID42 DataSet ds = this.ExecAdapter(strSQL_Tmp, "T"); 43 DataTable dt = ds.Tables["T"];44 if (dt.Rows.Count>0)45 {46 m_strID = dt.Rows[0]["ID"].ToString(); 4748 for (int i = 0; i < listTranSQLCmd.Count; i++) 49 {50 //如果队列中的语句需要连接ID,则处理SQL语句后再执行 51 string strSQL = "";52 if (listTranSQLCmd[i].bNeedID == true) 53 {54 strSQL = string.Format(listTranSQLCmd[i].strSQL, m_strID);55 }56 else57 {58 strSQL = listTranSQLCmd[i].strSQL; 59 }6061 mandText = strSQL; 62ChaosSqlCmd.ExecuteNonQuery(); 63 }64 }65 else66 {67 //如果没有正确获取首先插入语句的ID,则回滚 68ChaosSqlTran.Rollback();69 throw new Exception("产生ID语句没有成功执行,后续语句无法继续执行,已回滚~\r\n");70 } 717273 //全部成功执行则提交74 mit(); 75 }76 catch (System.Data.SqlClient.SqlException Ex)77 {78 //发生问题则回滚79 ChaosSqlTran.Rollback(); 80 throw new Exception(Ex.Message); 81 }82 }83 }84 #endregion。
转:VB⽤ADO连接SQLServer数据库'数据源信息常量Public Const conn As String = "Provider = SQLOLEDB.1;Password = sa; UserID = sa; Initial Catalog = StudentFiles; Data Source = localhost"Public Const CONNECT_LOOP_MAX = 10 '⼀次执⾏connect操作,可以访问数据库的次数Private IsConnect As Boolean '标记数据库是否连接Private Connect_Num As Integer '标记执⾏Connect()函数后访问数据的次数Private cnn As ADDODB.Connection '连接数据库的Connect对象Private re As ADDODB.Recordset '保存结果集的Recordset对象//连接数据库Private Sub Connect()’如果连接标记为真,则返回。
IF IsConnect = True ThenExit SubEnd IfSet cnn = New ADODB.Connection '关键new⽤于创建新对象cnncnn.ConnectionString = conncnn.Open'判断连接的状态If cnn.State <> adStateOpen ThenMsgBox"数据库连接失败"EndEnd If'设置连接标识,表⽰已经连接到数据库IsConnect = TrueEnd Sub'断开与数据库的连接Private Sub DisConnect()Dim rc As LongIf IsConnect = False ThenExit SubEnd If'关闭连接cnn.Close'释放cnnSet cnn = NothingIsConnect = FalseEnd Sub'使⽤Connect_Num控制数据连接Public Sub DB_Connect()Connect_Num = Connect_Num + 1ConnectEnd Sub'使⽤Connect_Num控制数据断开Public Sub DB_Disconnect()If Connect_Num >= CONNECT_LOOP_MAX ThenConnect_Num = 0DisconnectEnd IfEnd Sub'强制关闭api⽅式访问俄的数据库,计数器复位Public Sub DBapi_Disconnect()Connect_Num = 0DisconnectEnd Sub'执⾏数据库操作语⾔'byval 就是按参数的值传递,再传递过程中,参数不会发⽣变化(也就是将参数值⽽不是将地址传递给过程的⽅式,这就使过程访问发哦变量的副本,过程不可改变变量的值);与之对应的是byref,指按参数的地址传值,byref可以省略Public Sub SQLExt(ByVal TmpSQLstmt As String )Dim cmd As New mand '创建Command对象cmdDB_Connect '连接数据库Set cmd.ActiveConnection = cnn '设置cmd的ActiveConnect属性,指定与其关联的数据库连接mandText = TmpSQLstmt '设置要执⾏的命令⽂本'MsgBox TmpSQLstmtcmd.Execute '执⾏命令Set cmd = NothingDB_DisConnect '断开与数据库的连接End Sub'执⾏数据库查询语句Public Function QueryExt(ByVal TmpSQLstmt As String ) As ADODB.RecordsetDim rst As New ADODB.Recordset '创建Rescordset对象rstDB_Connect '连接数据库Set rst.ActiveConnection = cnn '设置rst的ActiveConnection属性,指定与其相关的数据库的连接rst.CursorType = adOpenDynamic '设置游标类型rst.LockType = adLockOptimistic '设置锁定类型rst.Open TmpSQLstmt '打开记录集Set QueryExt = rst '返回记录集End Function。
第七章任务一实验目的:学习网页和SQL Server数据库建立连接实验要求:1.将网页和SQL Server数据库建立连接2.向学生数据库中的学生表中输入数据3.使用Response输出学生表中所有数据4.使用GridView控件输出学生表中的所有数据实验步骤:第一步:建立个数据库第二步:连接起来第三步:编写处理代码实验结果:详细代码:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class_Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){SqlConnection SunCon = new SqlConnection("Data Source=djsw43;Initial Catalog=学生管理;Integrated Security=True");SunCon.Open();string StuSQL;StuSQL = "INSERT INTO 学生(学号,姓名,性别,籍贯,班级,电话)";StuSQL = StuSQL + "VALUES('"+ TextBox1.Text + "','" + TextBox2.Text;StuSQL = StuSQL + "','" + TextBox3.Text + "','" + TextBox4.Text;StuSQL = StuSQL + "','" + TextBox5.Text + "','" + TextBox6.Text + "')";SqlCommand StuIns = new SqlCommand(StuSQL , SunCon);StuIns.ExecuteNonQuery();SunCon.Close();}protected void Button2_Click(object sender, EventArgs e){Response.Redirect("sun7_1a.aspx");}protected void Button3_Click(object sender, EventArgs e){Response.Redirect("sun7_1b.aspx");}}sun7_1a.aspx.cs 代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class sun7_1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){SqlConnection SunCon = new SqlConnection("Data Source=djsw43;Initial Catalog=学生管理;Integrated Security=True");SunCon.Open();string StuSQL;StuSQL = "SELECT 学号,姓名,性别,籍贯,班级,电话 FROM 学生";SqlCommand StuIns = new SqlCommand(StuSQL, SunCon);SqlDataReader SunDa = StuIns.ExecuteReader();while (SunDa.Read()){Response.Write(SunDa.FieldCount);Response.Write(SunDa.GetString(0) + " ");Response.Write(SunDa.GetString(1) + " ");Response.Write(SunDa.GetString(2) + " ");Response.Write("<br/>");}SunCon.Close();}}sun7_1b.aspx.页面中插入GridView按钮代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class sun7_1b : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){SqlConnection SunCon = new SqlConnection("Data Source=djsw43;Initial Catalog=学生管理;Integrated Security=True");SunCon.Open();string StuSQL;StuSQL = "SELECT 学号,姓名,性别,籍贯,班级,电话 FROM 学生";SqlCommand StuIns = new SqlCommand(StuSQL, SunCon);SqlDataReader SunDa = StuIns.ExecuteReader();GridView1.DataSource = SunDa;GridView1.DataBind();SunCon.Close();}}。
Vc++(MFC)实现SQLServer的远程连接SQLOLEDBVc++(MFC)实现SQL Server的远程连接(ADO实现)一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例OLE DB 而设计的,是一个便于使用的应用程序层接口OLE.DB 提供者访问和操作数据库服务器中的数据。
ADO 最主要的优点是易于使用、速度快、内存支出少和磁最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。
之所喻,OLE 自动化接口。
二、利用ADO来实现对SQL Server的远程连接1、首先是引入ADO库文件使用ADO前必须在你的工程中的stdafx.h文件里直接引入符号#import引入A 如下内容:#include#include#import "C:\program files\common files\system\ado\msado15.dll" \no_namespace rename("EOF", "ADOEOF") 这行语句声明在工程中使用ADO,但不使用ADO的名字改名为"ADOEOF"。
现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境在InitInstance()函数下面初始化OLE/COM库BOOL ****** ::InitInstance(){//下面是需要添加的代码:if (!AfxOleInit())//初始化OLE/COM库环境{AfxMessageBox("OLE初始化出错!");return FALSE;}................}3、下面是连接数据库代码:定义_ConnectionPtr接口和_RecordsetPtr接口。
如下:_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;实现代码:HRESULT hr;try{hr = m_pConnection.CreateInstance("ADODB.Connection");if (SUCCEEDED(hr)){//connect database_bstr_t strConnect="Provider=SQLOLEDB.1;Initial Catalog=“数据库名称”;Data Source=远程IP";hr = m_pConnection->Open(strConnect,"用户名","密码",adModeUnknown);AfxMessageBox("连接成功");}}catch(_com_error e){CString errormessage;errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());AfxMessageBox(errormessage);return ;}4、查询数据库信息:添加listctrl控件,并定义为m_list ;在winfo表中查询id,name,ip信息。
实验八ADO控件与SQLServer编程(一)附加数据库附加student 数据库,注意将自己的数据库文件拷贝到指定目录下EXEC sp_attach_db @dbname = N'student',@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\student_data.mdf', @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\student_log.ldf'一、ODBC数据源配置1、建立访问Student数据库的用户DSN数据源mydata开始→控制面版→管理工具→数据源(ODBC),在“用户DSN”页,点击“添加”,选择数据源的驱动程序为SQLServer,点击“完成”,进入下一个界面,输入数据源的名称“mydata”,描述“连接student数据库”,服务器“本机的SQLServer服务器名”(在SQLServer服务管理器的界面上有),点击“下一步”,选择用户登陆身份验证方式为Windows NT方式,点击“下一步”,选择更改默认数据库为student,点击“下一步”,点击“下一步”,点击“测试数据源”,应显示测试成功。
点击“确定”二、利用ADO控件和VB数据控件编程1、建立编程环境选择菜单“工程”→部件,选择下列选项后,点“确定”:部件Microsoft ADO Data Controls 6.0(SP4)(OLE DB)部件Microsoft DataGrid Controls 6.0(SP5))(OLE DB)部件Microsoft DataList Controls 6.0(OLE DB)在屏幕右侧的控件框里显示有ADO控件、VBDataGrid和DataComb控件的图标2、用ADO控件和VB DataGrid显示学生表student内容1)添加一个新窗体:选择菜单“工程”→添加窗体,选择“窗体”→点“打开”,将窗体调整到合适大小,设置窗体名称为FrmStuQurey,Caption为“学生查询”,保存窗体工程名称为Test2)添加ADO控件,设置控件属性在屏幕右侧的控件框里选择adodc,添加到窗体上。
选中窗体上的ADO控件,点击鼠标右键,选择ADODC属性,进入控件属性设置界面选择“使用ODBC数据源名称”,在下拉框内找到mydata,点击“确定”,在“记录源”页的命令文本(SQL)框中,输入SQL语句:select * from student3)添加VBDataGrid控件,设置控件属性在屏幕右侧的控件框里选择DataGrid,添加到窗体上。
在左下侧的属性框内设置控件属性,设置“DataSource”为Adodc13)运行程序,应DataGrid框内显示student表内容4)将ADO控件的Visible属性设为False,将DataGrid控件的AllowNew、AllowDelete、AllowUpdata设为True。
运行程序,在DataGrid框内操作数据的增、删、改。
3、用ADO控件和VB DataCombo显示专业表Speciality1)在窗体上添加新的ADO控件Adodc2,设置属性:连接Student数据库,查询数据命令SQL:select * from Speciality2)添加VBDataCombo控件,设置控件属性在屏幕的控件框里选择DataCombo,添加到窗体上,在属性框内设置控件属性:Style:2-DropDownList控件显示内容设置专业名称Spname:“RowSource”为Adodc2,“LisFiled”为Spname控件显示内容的连动关键字设置为专业号Spno:“DataSource”为Adodc2,“DataFiled”为Spno,“BoundColumn为Spno3)运行程序,观察DataCombo内容4、用ADO控件和VB DataGrid、DataComb联合查询某专业的学生功能:用专业下拉框选择要查询的专业,查询该专业的学生信息,更新DataGrid显示1)在DataCombo的click事件中编程:Dim Sqltxt As StringSqltxt = "select * from student where Spno like '" + Trim(DataCombo1.BoundText) + "'"Adodc1.RecordSource = SqltxtAdodc1.Refresh2)运行程序,观察DataCombo内容与DataGrid内容的连动5、用输入框接受查询条件,用按钮执行查询。
功能:输入学号,按学号查询学生,更新DataGrid显示1)在窗体上添加标签label、文本输入框Text和按纽Button,设置标签的属性:Caption:学号设置按纽的属性:Caption:查询2)在Button的Click事件编程:Dim Sqltxt As StringSqltxt = "select * from student where Sno like '" + Trim(Text1.Text) + "'"Adodc1.RecordSource = SqltxtAdodc1.Refresh3)运行程序,在文本框输入学号,点“查询”,观察DataGrid内容变化6、增加主菜单窗体,设计两个菜单选项:查询(学生查询)、维护(学生表维护)1)设置学生查询窗体属性:Caption:学生查询,名称:FrmStuQurey,保存2)添加新窗体(主菜单),设置窗体属性:Caption:主菜单,名称:FrmMain,保存3) 设置菜单项:在主菜单窗体上点鼠标右键,选择菜单编辑器,设计两个一级菜单选项,两个二级菜单选项:标题:查询,名称:chaxun学生查询,名称: stuchaxun标题:维护,名称:wenhu学生表维护,名称:stuweihu4)主菜单窗体编程:点击学生查询,进入该菜单Click事件编程:FrmStuQurey.Show5)将主菜单窗体设置为本工程的启动窗体:在“工程”窗选中工程1,点鼠标右键,选择工程属性,在“启动对象”下拉框中设置启动窗体为FrmMain,保存6)运行程序,观察从主菜单进入学生查询窗体。
7、表的维护用ADO控件和VB DataGrid、Text、按纽联合实现student表的维护。
功能:增加:在文本框中录入学生信息,按“增加”按纽添加到student表删除:在DataGrid中选择一行,按“删除”按纽从student表删除该行修改:在DataGrid中选择一行,将该行内容显示在文本框中,修改文本框内容后,按“修改”按纽,将修改的内容写入student表。
专业选择:在专业下拉框选中一个专业,该专业的专业编号显示在“专业”的文本框内。
用DataGrid 和ADO控件实现学生表的维护1)添加新窗体(主菜单),设置窗体属性:Caption:学生表维护,名称:Frmstumaintain,保存2)在窗体上添加DataGrid 和ADO控件,设置控件属性,使DataGrid显示ADO查询的学生表内容4)在窗体上添加4个标签label、4个文本输入框Text和3个按纽Button,设置标签的Caption属性分别为:学号、姓名、性别、年龄设置按纽的Caption属性分别为:添加、修改、删除3)在添加按纽的Click事件内编程:Adodc1.Recordset.AddNewAdodc1.Recordset.Fields("Sno") = Trim(Text1(0).Text)Adodc1.Recordset.Fields("Sname") = Trim(Text1(1).Text)Adodc1.Recordset.Fields("Ssex") = Trim(Text1(2).Text)Adodc1.Recordset.Fields("Sage") = Trim(Text1(3).Text)Adodc1.Recordset.Update4)在DataGrid的Click事件内编程:Text1(0).Text = DataGrid1.Columns("Sno")Text1(1).Text = DataGrid1.Columns("Sname")Text1(2).Text = DataGrid1.Columns("Ssex")Text1(3).Text = DataGrid1.Columns("Sage")在修改按纽的Click事件内编程:Adodc1.Recordset.Fields("Sno") = Trim(Text1(0).Text)Adodc1.Recordset.Fields("Sname") = Trim(Text1(1).Text)Adodc1.Recordset.Fields("Ssex") = Trim(Text1(2).Text)Adodc1.Recordset.Fields("Sage") = Trim(Text1(3).Text)Adodc1.Recordset.Update5)在删除按纽的Click事件内编程:Adodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF And Adodc1.Recordset.RecordCount > 0 ThenAdodc1.Recordset.MoveLastEnd If专业下拉框(DataCombo1_Click事件)选择专业将专业编号显示在“专业”文本框内的编程Text1(4).Text = DataCombo1.BoundText。