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

如题所述

有两种方法来为数据库创建一个新表,
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个回答  2018-04-11

有两种方法来为数据库创建一个新表,
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();
}

本回答被网友采纳
相似回答