2015-06-30 5 views
0

У меня есть огромное количество столбцов данных в определенной таблице, теперь их нужно сопоставить с C# Visual Studio. Есть ли простой способ сделать это или это все еще трудоемкая ручная задача. Вот пример того, что я имею в виду:C# SQL Data Mapping в Visual Studio

string query = @"UPDATE Buyer 
       SET DealID = @DealID,[email protected],[email protected],[email protected], 
       [email protected],[email protected],[email protected],[email protected], 
       [email protected],[email protected],[email protected],[email protected], 
       [email protected],[email protected], 
       [email protected],[email protected], 
       [email protected],[email protected],[email protected], 
       [email protected],[email protected] WHERE IDNo = @IDNo"; 
SqlCommand cm = new SqlCommand(query, cn); 
string id = iDNoTextBox.Text; 
cm.Parameters.AddWithValue("@DealID", txtDealNo.Text); 
cm.Parameters.AddWithValue("@id", iDNoTextBox.Text); 
cm.Parameters.AddWithValue("@Title", titleComboBox.Text); 
cm.Parameters.AddWithValue("@FirstName", firstNameTextBox.Text); 
+1

Существует множество [ORM (Object Relational Mapper)] (https://en.wikipedia.org/wiki/List_of_object-relational_mapping_software), который может устранить эту проблему. Конечно, вам нужно посвятить немного времени, чтобы узнать, что лучше для вас. – Steve

ответ

0

У вас есть выбор, чтобы сделать это простым способом

Первое: Используйте ORMs такие EntityFramework, например, вы можете использовать dapper-dot-net, пример кода:

var dog= connection.Query("select Age = @Age, Id = @Id", new {Age = (int?)null,Id=guid}); 

Вставьте пример:

connection.Execute(@"insert MyTable(colA, colB) values (@a, @b)", 
    new[] { new { a=1, b=1 }, new { a=2, b=2 }, new { a=3, b=3 } } 
).IsEqualTo(3); // 3 rows inserted: "1,1", "2,2" and "3,3" 

Второе: Используйте массив типа SqlParameter и вставить, что в SqlCommand

SqlCommand Comm = new SqlCommand("Command text", new SqlConnection("Connection String"); 
SqlParameter[] param = {new SqlParameter("@Name","Value"), 
         new SqlParameter("@Name","Value"), 
          ........ 
          }; 
Comm.Parameters.AddRange(param); 

Третье: Или написать хорошую Sql Assistant и сделать общий картографа для object-to-relational и наоборот. то вы можете создавать свои параметры во время выполнения и динамически без жесткого кодирования.