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

【转载于博客】如何用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();
        }
 


相关帖子:
 
http://www.c-sharpcorner.com/UploadFile/mahesh/CreatingDBProgrammaticallyMCB11282005064852AM/CreatingDBProgrammaticallyMCB.aspx
http://social.msdn.microsoft.com/Forums/en/adodotnetdataproviders/thread/4929a0a8-0137-45f6-86e8-d11e220048c3
http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/ed6e07c6-1876-43cd-9bd4-f69dc22a7d58
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值