У меня нет проблем, когда я добавляю только одну запись.
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
}
ПОМОГИТЕ мне, пожалуйста!
PS Пожалуйста, извините меня за спам, но сайт требует больше текста прежде чем я смогу создать пост. Надеюсь, этого будет достаточно.