如何用C#为SQL Server数据库创建一个新表?

如何用C#为SQL Server数据库创建一个新表?,第1张

有两种方法来为数据库创建一个新表,

1.          我们可以用 ADO.NET 写出并执行 T-SQL 语句来创建表:

private void CreateTableBtn_Click(object sender, System.EventArgs e)

{

//  打开连接

if (conn.State == ConnectionState.Open)

conn.Close()

ConnectionString = "Integrated Security=SSPI" +

"Initial Catalog=mydb" +

"Data Source=localhost"

conn.ConnectionString = ConnectionString

conn.Open()

sql = "CREATE TABLE myTable" +

"(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY," +

"myName CHAR(50), myAddress CHAR(255), myBalance FLOAT)"

cmd = new SqlCommand(sql, conn)

cmd.ExecuteNonQuery()

}

2.          我们可以引用 SMO 库并用 SMO 函数来创建一个表

private void CreateTableBtn_Click(object sender, System.EventArgs e)

{

//  建立数据库服务器

string connectionString = "..."

SqlConnection connection =

new SqlConnection(connectionString)

Server server =

new Server(new ServerConnection(connection))

//  在我的个人数据库中创建表

Database db = server.Databases["mydb"]

//  建立 TestTable 的新表

Table newTable = new Table(db, "TestTable")

//  添加主键 ID 列

Column idColumn = new Column(newTable, "ID")

idColumn.DataType = DataType.Int

idColumn.Nullable = false

idColumn.Identity = true

idColumn.IdentitySeed = 1

idColumn.IdentityIncrement = 1

//  添加 "Title"  列

Column titleColumn = new Column(newTable, "Title")

titleColumn.DataType = DataType.VarChar(50)

titleColumn.Nullable = false

//  为  Table  对象添加列

newTable.Columns.Add(idColumn)

newTable.Columns.Add(titleColumn)

//  为表创建一个主键的索引

Index index = new Index(newTable, "PK_TestTable")

index.IndexKeyType = IndexKeyType.DriPrimaryKey

//  主键索引包括 1 列  "ID"

index.IndexedColumns.Add(new IndexedColumn(index, "ID"))

// 表中添加一个新的索引 .

newTable.Indexes.Add(index)

//  在数据库中实际创建一个表

newTable.Create()

}

1.首先使用Access创建一个数据保存在硬盘某处,使用.MDB。

2.打开Vs 2013,引入命名空间:

using System.Data.OleDb

声明对象:

private  OleDbConnection _oleDbConn        private  OleDbDataAdapter _oleDbAda

3.构建链接信息:

public readonly static string _strdata = string.Format("{0}{1}{2}", "provider=microsoft.jet.oledb.4.0 Data Source=", System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"\db\StuManData.mdb")

这里是构建一个目录:当前目录先的db文件夹下的StuMandata.mdb数据库文件。

当然可以可以直接指定目录:例:

string_strdata=@"provider=microsoft.jet.oledb.4.0 Data Source=C:\db\StuManData.mdb"

这样就构建好了链接信息。

4._oleDbConn = new OleDbConnection(_strConn)//根据链接信息实例化链接对象

_oleDbConn.open()//打开连接

_oleDbAda = new OleDbDataAdapter(strsql, _oleDbConn)//strsql sql语句;

见过sql语句执行的数据库连接对象

_oleDbAda.Fill(dt, tableName)

//将结果保存到本地结果及 dt==DataSet dt=new DataSet()

//Ok,Now,可以 *** 作dt了,当然前提它不是空的。

5.调用示例,构建Sql语句,传给显示窗体对象。

6.使用封装好的类,返回查询结果集,并提取数据。

7.运行结果。

CREATE TABLE语句,用于在数据库中创建新表。语法:CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])。

table参数用于指定新建表的名称。field1,field2用于指定在新表中创建的新字段的名称,每创建一个新表必须至少创建一个字段。type参数用来指定新建字段的数据类型。size参数用于指定文本及二进制字段的长度。

NOT NULL是SQL的关键字,使用该参数则新记录的该字段值必须是有效的数据。在一个字段上只能使用一次NOT NULL参数,否则会出错。index1, index2参数是定义单一字段索引的CONSTRAINT子句。multifieldindex参数是定义多重字段索引的CONSTRAINT子句。

扩展资料:

方法数据类型(data_type)规定了列可容纳何种数据类型。SQL中最常用的数据类型有:

1、integer(size) int(size) smallint(size) tinyint(size):仅容纳整数。

2、decimal(size,d) numeric(size,d):容纳带有小数的数字。

3、char(size):容纳固定长度的字符串

4、varchar(size):容纳可变长度的字符串

5、date(yyyymmdd):容纳日期。

CREATE TABLE语句可创建空表,同时可使用 INSERT INTO 语句向空表写入数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10772096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存