【发布时间】:2020-04-03 08:10:48
【问题描述】:
我只添加一条记录没有任何问题。
public int Add(Company Company)
{
var cmd = new SqlCommand("MD.CompanyAdd", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 0;
try
{
conn.Open();
cmd.Parameters.AddWithValue("@CompanyName", Company.CompanyName);
cmd.Parameters.AddWithValue("@CompanyCode", Company.CompanyCode);
cmd.Parameters.AddWithValue("@RateType", Company.RateType);
var result = cmd.ExecuteScalar();
//var result = cmd.ExecuteNonQuery();
//var qwe = result.ToString();
return int.Parse(result.ToString());
}
catch (Exception ex)
{
Debug.WriteLine("Exception: " + ex.Message);
throw;
}
finally
{
conn.Close();
}
}
但我不明白如何添加收藏。 我想我应该对 DataTable 做点什么,但我不明白到底是什么。
class CompanyRepository
{
private string _connectionString;
private SqlConnection conn;
public CompanyRepository(string ConnectionString)
{
_connectionString = ConnectionString;
conn = new SqlConnection(_connectionString);
}
public void AddList(IList<Company> Companies)
{
try
{
conn.Open();
var cmd = new SqlCommand("MD.CompanyAddList", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 0;
DataTable dataTable = new DataTable();
dataTable.Columns.Add("[CompanyCode]", typeof(string));
dataTable.Columns.Add("[CompanyName]", typeof(string));
dataTable.Columns.Add("[RateType]", typeof(string));
foreach (var Company in Companies)
{
dataTable.Rows.Add(Company);
}
cmd.Parameters.AddWithValue("@ImportTable", dataTable);
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Debug.WriteLine("Exception: " + ex.Message);
throw;
}
finally
{
conn.Close();
}
}
}
public class Company
{
public int CompanyId { get; set; } // CompanyID (Primary key)
public string CompanyCode { get; set; } // CompanyCode (length: 10)
public string CompanyName { get; set; } // CompanyName (length: 256)
public int? RateType { get; set; } // RateType
}
请帮帮我!
附: 请原谅我的垃圾邮件,但网站需要更多的文字才能创建帖子。我希望这已经足够了。
【问题讨论】:
-
您可以简单地循环为集合中的每个项目创建和生成命令。另一种方法可能是 SqlBulkCopy 类。