我是用C#.net寫(xiě)出來(lái)的
創(chuàng)新互聯(lián)公司于2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元南京做網(wǎng)站,已為上家服務(wù),為南京各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
SqlConnection myConn = new SqlConnection(sqlconnstring);
myConn.Open();
SqlDataAdapter thisAdapter = new SqlDataAdapter("SELECT * from 表名", myConn);
thisAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
DataTable thisDataTable = new DataTable();
thisAdapter.Fill(thisDataTable);
DataTableReader thisReader = new DataTableReader(thisDataTable);
DataTable schemaTable = thisReader.GetSchemaTable();
foreach (DataRow dr in schemaTable.Rows)
{
MessageBox.Show(dr["ColumnName"].ToString());獲取字段名稱(f1 f2 f3)
MessageBox.Show(dr["ColumnSize"].ToString());獲取字段長(zhǎng)度(2 2 2)
MessageBox.Show(dr["DataType"].ToString());獲取字段類(lèi)(str str int)
}
SQL語(yǔ)言創(chuàng)建數(shù)據(jù)庫(kù)和學(xué)生表
建立:
[sql]
create database zxl ?
create table 學(xué)生表
(
學(xué)號(hào) char(12) primary key,
姓名 char(6) not null,
性別 char(2) check(性別 IN ('男','女')),
班級(jí) char(15)
) ?
create table 成績(jī)表
(
學(xué)號(hào) char(12)references 學(xué)生表(學(xué)號(hào)),
課程號(hào) char(2)references 課程表(課程號(hào)) ,
成績(jī) int default(30),
primary key (學(xué)號(hào),課程號(hào))
)
create table 課程表
(
課程號(hào) char(2) primary key,
課程名 char(20),
學(xué)分 int check(學(xué)分=1 and 學(xué)分=5 )
)
操作:
[sql]
insert into 學(xué)生表 values('201190609112','張xl','男','文專計(jì)1111')
insert into 學(xué)生表 values('201190609113','張**','女','文專計(jì)1111')
insert into 成績(jī)表 values('201190609112','01',100)
insert into 成績(jī)表 values('201190609112','02',99)
insert into 成績(jī)表 values('201190609112','03',88)
insert into 課程表 values('01','數(shù)據(jù)庫(kù)系統(tǒng)',3)
insert into 課程表 values('02','vb.net',4)
insert into 課程表 values('03','java',4)
select *from 成績(jī)表
select 姓名,課程名,成績(jī)
from 學(xué)生表,課程表,成績(jī)表
where (學(xué)生表.學(xué)號(hào)=成績(jī)表.學(xué)號(hào) and 課程表.課程號(hào)=成績(jī)表.課程號(hào))
order by 成績(jī) desc
select avg(成績(jī)) 平均分,max(成績(jī)) 最高分,min(成績(jī)) 最低分
from 成績(jī)表
where 學(xué)號(hào)='201190609112
創(chuàng)建一個(gè)名為教學(xué)管理的數(shù)據(jù)庫(kù)創(chuàng)建學(xué)生表要求定義主碼?
一、簡(jiǎn)答
1、DBA的職責(zé)是什么?
2、視圖的作用有哪些?
3、數(shù)據(jù)庫(kù)的完整性和安全性有什么區(qū)別?
4、SQL語(yǔ)言的特點(diǎn)是什么?
5、數(shù)據(jù)字典通常包括哪幾部分?
6、什么是基本表,什么是視圖,二者的區(qū)別和聯(lián)系是什么?
7、DBMS的主要功能是什么?
8、什么是數(shù)據(jù)庫(kù)備份和恢復(fù)?為什么要備份和恢復(fù)數(shù)據(jù)庫(kù)?
9. 什么是事務(wù)?事務(wù)的作用?SQL中事務(wù)的語(yǔ)法結(jié)構(gòu)是怎樣的?
10、舉出實(shí)體之間具有一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系的例子。
11、 數(shù)據(jù)庫(kù)的并發(fā)操作會(huì)帶來(lái)哪些問(wèn)題?如何解決?
12、什么是日志文件?簡(jiǎn)述日志文件恢復(fù)事務(wù)的過(guò)程(即:事務(wù)故障的恢復(fù)的過(guò)程)。
13、關(guān)系完整性約束規(guī)則有哪三類(lèi)?
14、 數(shù)據(jù)庫(kù)管理技術(shù)發(fā)展的三個(gè)階段?
15、寫(xiě)出數(shù)據(jù)庫(kù)的設(shè)計(jì)的五個(gè)階段。
16、根據(jù)3NF的定義及規(guī)范化方法,對(duì)關(guān)系模式R(U,F(xiàn)) U={學(xué)號(hào),姓名,所在系,系主 ? ? ? ? ? ? ?任,課程號(hào),成績(jī)} F= { 學(xué)號(hào) → 姓名 , 學(xué)號(hào) → 所在系,所在系 → 系主任(學(xué)號(hào),課程 ? ? ? ?號(hào)) → 成績(jī)} 進(jìn)行分解,使其滿足3NF。
17、 什么是事務(wù)?事務(wù)有哪些特征?
18、寫(xiě)出關(guān)系型數(shù)據(jù)庫(kù)的第一、第二、第三范式的各自要求。
19、舉三個(gè)例子分別說(shuō)明二元聯(lián)系的三種情況( 1:1、1:M、M:N ) 。
運(yùn)行sql文件出錯(cuò)
解決辦法:使用Notepad++打開(kāi)文件,選擇 格式-無(wú)BOM的UTF8格式編碼
1、首先打開(kāi)Visual Studio 2008代碼窗口,添加引用。
2、輸入以下代碼:Public conn1 ?As SqlConnection = New SqlConnection 。
3、聲明關(guān)鍵字 Public;(因?yàn)槭侨肿兞?,所以用Public 來(lái)聲明)。
4、如果SQL 數(shù)據(jù)庫(kù)就在本機(jī),則用以下代碼連接。
5、如果代碼太長(zhǎng),影響可讀性,可以用空格加"_"后,回車(chē)換行即可。
Dim?myconn?As?New?OleDb.OleDbConnection
Dim?mycommand?As?New?OleDb.OleDbCommand
myconn.ConnectionString?=?"Provider=Microsoft.ace.OLEDB.12.0;Data?Source=C:\Users\Administrator\Documents\賬號(hào)密碼.accdb?"
myconn.Open()
mycommand.Connection?=?myconn
Dim?sql5?As?String?=?"delete?from?表3?where?userid='"??(TextBox1.Text)??"'"
mycommand.CommandText?=?sql5
mycommand.CommandType?=?CommandType.Text
mycommand.ExecuteNonQuery()
Dim?sql3?As?String?=?"update?表2?set?Balance=Balance-2?where?UserID='"??(TextBox1.Text)??"'"
mycommand.CommandText?=?sql3
mycommand.CommandType?=?CommandType.Text
mycommand.ExecuteNonQuery()
myconn.Close()
首先打開(kāi)數(shù)據(jù)源,然后使用alter table語(yǔ)句即可,具體范例如下:
Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordsetconstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" 數(shù)據(jù)庫(kù)路徑及文件名 ""cn.Open constrDim str As Stringstr = "alter table 表名 add 字段 類(lèi)型"rs.Open str, cn, adOpenStaticmsgbox"添加字段成功",vbokonly
如果樓主熟悉VB6,可以直接在項(xiàng)目中添加ADODB的Com引用,這樣你就可以像VB6那樣操作數(shù)據(jù)庫(kù)了!
另外
.NET Framework中連接數(shù)據(jù)庫(kù)要用到ADO.NET。如果要操作Access數(shù)據(jù)庫(kù),要用到System.Data.OleDb命名空間下的許多類(lèi)。
比如按樓主所說(shuō),“我想在textbox1中顯示表一中【一些數(shù)據(jù)】字段下的第一個(gè)內(nèi)容”:
'首先導(dǎo)入命名空間
Imports System.Data
Imports System.Data.OleDb
'然后在某一個(gè)事件處理程序中寫(xiě):
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=數(shù)據(jù)庫(kù).accdb;Jet OLEDB:Database Password=MyDbPassword")
Dim command As New OleDbCommand("Select * From 數(shù)據(jù)表", conn)
conn.Open() '打開(kāi)數(shù)據(jù)庫(kù)連接
Dim reader As OleDbDataReader = command.ExecuteReader() '執(zhí)行SQL語(yǔ)句,返回OleDbDataReader 對(duì)象
Do While reader.Read() '讀取一條數(shù)據(jù)
textbox1.Text += reader("一些數(shù)據(jù)") VbCrLf
Loop
reader.Close() '關(guān)閉OleDbDataReader
conn.Close() '關(guān)閉連接