public void createsqltable(DataTable dt,string tablename)
{
string strconnection = "";
string table = "";
table += "IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" + tablename + "]') AND type in (N'U'))";
table += "BEGIN ";
table += "create table " + tablename + "";
table += "(";
for (int i = 0; i < dt.Columns.Count; i++)
{
if (i != dt.Columns.Count-1)
table += dt.Columns[i].ColumnName + " " + "varchar(max)" + ",";
else
table += dt.Columns[i].ColumnName + " " + "varchar(max)";
}
table += ") ";
table += "END";
InsertQuery(table,strconnection);
CopyData(strconnection, dt, tablename);
}
public void InsertQuery(string qry,string connection)
{
SqlConnection _connection = new SqlConnection(connection);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = qry;
cmd.Connection = _connection;
_connection.Open();
cmd.ExecuteNonQuery();
_connection.Close();
}
public static void CopyData(string connStr, DataTable dt, string tablename)
{
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(connStr, SqlBulkCopyOptions.TableLock))
{
bulkCopy.DestinationTableName = tablename;
bulkCopy.WriteToServer(dt);
}
}
출처
2013-01-28 12:58:04
JAY
사용하는 .NET 버전? DataTable은 매우 원시적 인 기술이며 사용자가 원하는 것을 수행하는 기본 방법이 없습니다. –
Framework 3.5 대 2010 년 –
을 사용하고 있습니다. 그러면 데이터베이스 모델을 만들고, 테이블을 만든 다음이를 업데이트 할 수있는 Entity Framework가 있어야합니다. DataTable은 상당히 오래된 것입니다. 제 경우에는 –