Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

SQL С++ VS Сохранение нескольких а не всех столбцов в бд.

Natsu Ученик (233), закрыт 1 месяц назад
мне уже помогли сохранять один столбец в бд,
таким кодом
try
{
String^ connectionstring = "Data Source=WIN-DFFK8CA8HJQ\\SQLEXPRESS;Initial Catalog=DBConstructorTesting;Persist Security Info=True;Integrated Security=true;";
SqlConnection^ con = gcnew SqlConnection(connectionstring);

con->Open();

String^ sqlquery = "INSERT INTO Table2 (ColumnNameForParam8) VALUES (@param8)";
SqlCommand^ cmd = gcnew SqlCommand(sqlquery, con);
cmd->Parameters->AddWithValue("@param8", textBox1->Text);

cmd->ExecuteNonQuery();
con->Close();
}
catch (Exception^ ex)
{
throw ex;
}
как мне сохранить например 5, если их всего 13?
Лучший ответ
бабуин гибонович Оракул (51698) 1 месяц назад
Для сохранения нескольких столбцов в базе данных с использованием C++/CLI и SQL Server, вы можете использовать аналогичный подход, как и в приведенном вами примере, только добавить больше параметров и соответствующих им значений. Вот пример, как это сделать для 5 столбцов:
 try    
{
String^ connectionString = "Data Source=WIN-DFFK8CA8HJQ\\SQLEXPRESS;Initial Catalog=DBConstructorTesting;Persist Security Info=True;Integrated Security=true;";
SqlConnection^ con = gcnew SqlConnection(connectionString);

con->Open();

String^ sqlQuery = "INSERT INTO Table2 (ColumnName1, ColumnName2, ColumnName3, ColumnName4, ColumnName5) VALUES (@param1, @param2, @param3, @param4, @param5)";
SqlCommand^ cmd = gcnew SqlCommand(sqlQuery, con);

cmd->Parameters->AddWithValue("@param1", textBox1->Text);
cmd->Parameters->AddWithValue("@param2", textBox2->Text);
cmd->Parameters->AddWithValue("@param3", textBox3->Text);
cmd->Parameters->AddWithValue("@param4", textBox4->Text);
cmd->Parameters->AddWithValue("@param5", textBox5->Text);

cmd->ExecuteNonQuery();
con->Close();
}
catch (Exception^ ex)
{
throw ex;
}
NatsuУченик (233) 1 месяц назад
try
{
String^ connectionString = "Data Source=WIN-DFFK8CA8HJQ\\SQLEXPRESS;Initial Catalog=DBConstructorTesting;Persist Security Info=True;Integrated Security=true;";
SqlConnection^ con = gcnew SqlConnection(connectionString);

con->Open();

String^ sqlQuery = "INSERT INTO Table2 ([group], name) VALUES (@param1, @param2)";
SqlCommand^ cmd = gcnew SqlCommand(sqlQuery, con);

cmd->Parameters->AddWithValue("@param1", textBox2->Text);
cmd->Parameters->AddWithValue("@param2", textBox1->Text);

cmd->ExecuteNonQuery();
con->Close();
}
catch (Exception^ ex)
{
throw ex;
}
При таком написании, второй столбец не сохраняется, как решить данную проблему?
бабуин гибонович Оракул (51698) Natsu, .
бабуин гибоновичОракул (51698) 1 месяц назад
 MessageBox::Show("Error: " + ex->Message, "Error", MessageBoxButtons::OK, MessageBoxIcon::Error);  
}
Остальные ответы
Александр Искусственный Интеллект (303499) 1 месяц назад
что за бредовая такая база?

даже если ты перечисляешь в INSERT INTO только некоторые столбцы, сохранена будет вся строка со всеми столбцами... просто остальные останутся либо пустыми, либо со значениями по умолчанию. и само собой, могут быть столбцы не допускающие пустоты...
NatsuУченик (233) 1 месяц назад
Тогда как лучше написать?
Похожие вопросы