你可以嘗試一些如下 - 創建它,當你從閱讀器獲得數據,你會使用的類。
public class Foo
{
public string Email { get; set; }
public string Badge { get; set; }
public string Name { get; set; }
}
然後我們會從我們的第一個數據庫首先得到數據如下:
public List<Foo> GetData()
{
List<Foo> dataList = new List<Foo>();
string connectionString = "Connection String A";
string selectStatement = "SELECT Email, Badge, Name FROM PublishedWorks";
using (var con = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand(selectStatement, con))
{
con.Open();
using (var reader = cmd.ExecuteReader())
{
dataList.Add(new Foo
{
Email = reader.GetString(0),
Badge = reader.GetString(1),
Name = reader.GetString(2)
});
}
}
}
return dataList;
}
現在我們有數據,我們將它插入到另一個數據庫中,我們可以這樣做:
public void InsertData()
{
string connectionString = "Connection String B";
string insertStatment = "INSERT INTO SOMETABLE (Email, Badge, Name) VALUES (@Email, @Badge, @Name)";
List<Foo> dataList = GetData();
if(dataList.Count > 0)
{
using (var con = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand(insertStatment, con))
{
con.Open();
foreach (var items in dataList)
{
cmd.Parameters.Add("@Email", SqlDbType.NVarChar).Value = items.Email;
cmd.Parameters.Add("@Badge", SqlDbType.NVarChar).Value = items.Badge;
cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = items.Name;
}
cmd.ExecuteNonQuery();
}
}
}
}
非常感謝你你的回答,它幫助了我很多。但請,我是否必須創建Foo類?我從SQL獲取數據? – Tuta
不客氣!你不必創建一個名爲'Foo'的類,它只是一個你可以構建的例子。當你使用'SqlReader'讀取數據時,你需要將數據存儲到某個地方,以便你可以再次使用它,因爲我使用了'List',但是你可以很容易地將它存儲在一個'DataTable'中,然後讀回它並根據需要將其插入另一個數據庫。 –
Izzy
可以請給我一個datatable的例子...謝謝你的幫助 – Tuta