2015-07-08 4 views
0
public void create(account_detail c, int jobcard_id) 
     { 
      SqlConnection con = new SqlConnection(@"Data source =(LocalDB)\v11.0;AttachDbFilename=C:\Users\Wattabyte Inc\Documents\CarInfo.mdf;Integrated Security=True;"); 
      SqlCommand cmd = new SqlCommand(); 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = con; 
      con.Open(); 
      foreach (var details in c.Data) 
      { 
       cmd.CommandText = "insert into child_detail values ('" + jobcard_id + "','" + details.completed_by + "','" + details.reporting_time + "','" + details.cost_activity + "','" + details.spared_part_used + "');"; 
       cmd.ExecuteNonQuery(); 
      } 

     }   

Я использую этот код, но он принимает только одно значение, но я хочу сохранить несколько значений в базе данных?Как вставить несколько динамических значений строк в базу данных

+1

Вы пытались запустить это в режиме отладки, чтобы увидеть счет 'c.Data'? –

+0

это будет только один раз. – raja

+0

Если 'details' в' c.Data' появляется один раз, то он должен запускаться только один раз. –

ответ

0

Try что-то вроде:

string additionalText = string.Empty; 
bool needComma = false; 

foreach (var details in c.Data) 
{ 
    if (needComma) 
     additionalText += ", "; 
    else 
     needComma = true; 

    additionalText += "('" + jobcard_id + "','" + details.completed_by + "','" + details.reporting_time + "','" + details.cost_activity + "','" + details.spared_part_used + "')"; 
} 

cmd.CommandText = "insert into child_detail values " + additionalText + ";"; 
cmd.ExecuteNonQuery(); 

Основная идея - подготовить строку Teh команды в цикле foreach, а затем выполнить команду один раз.

+0

"вставить в значения child_detail ("; является ли это синтаксической ошибкой – raja

+0

Typo fixed (работает по http://stackoverflow.com/questions/452859/inserting-multiple-rows-in-a-single-sql -query) –

+0

сэр вы можете написать полную команду ... я не могу этого сделать .. – raja

Смежные вопросы