創建數據庫表是否有可能(在2005年Vb.Net),而無需手動分析數據集表格屬性,創建表,並將其添加到數據庫?從數據集表
我們在某些機器上有舊版本的程序,顯然有我們的舊數據庫,而且我們正在尋找一種方法來檢測是否存在缺少的表,然後根據表的當前狀態生成表在數據集中。每當我們發佈新版本(如果添加新列),我們都在重新編寫表格腳本,但如果可能的話,我們希望避免這一步驟。
創建數據庫表是否有可能(在2005年Vb.Net),而無需手動分析數據集表格屬性,創建表,並將其添加到數據庫?從數據集表
我們在某些機器上有舊版本的程序,顯然有我們的舊數據庫,而且我們正在尋找一種方法來檢測是否存在缺少的表,然後根據表的當前狀態生成表在數據集中。每當我們發佈新版本(如果添加新列),我們都在重新編寫表格腳本,但如果可能的話,我們希望避免這一步驟。
看到這個MSDN論壇帖子:Creating a new Table in SQL Server from ADO.net DataTable。
這裏海報似乎試圖做同樣的事情,你,並提供了利用包含在一個DataTable的架構CREATE TABLE語句代碼。
假設這個作品,因爲它應該,然後你可以採取的代碼,並通過SqlCommand.ExecuteNonQuery()
以創建表提交到數據庫。
下面是代碼
SqlConnection con = new SqlConnection("Data Source=.;uid=sa;pwd=sa123;database=Example1");
con.Open();
string sql = "Create Table abcd (";
foreach (DataColumn column in dt.Columns)
{
sql += "[" + column.ColumnName + "] " + "nvarchar(50)" + ",";
}
sql = sql.TrimEnd(new char[] { ',' }) + ")";
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
using (var adapter = new SqlDataAdapter("SELECT * FROM abcd", con))
using(var builder = new SqlCommandBuilder(adapter))
{
adapter.InsertCommand = builder.GetInsertCommand();
adapter.Update(dt);
}
con.Close();
希望你有解決了這個問題。 這裏dt是數據表的名稱。 或者U可以與
adapter.Update(ds.Tables[0]); \\if u have a dataset
請投我的答案,如果你認爲我已經爲您提供了一個答案替換
adapter.update(dt);
!
Yaakov Ellis鏈接現在已損壞,它已更改爲[this](http://social.msdn.microsoft.com/Forums/zh-CN/adodotnetdataproviders/thread/4929a0a8-0137-45f6-86e8-d11e220048c3/ )。 – 2011-07-21 14:45:43