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

Здравствуйте, помогите решить проблему. В C++ VS. Появляется такая ошибка.

Natsu Ученик (233), на голосовании 4 недели назад
Вот эта ошибка: System.ArgumentException: "Ключевое слово не поддерживается: "data sourse"."
Код:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{

label6->Text = text1.ToString();
if (text1 > num && textBox1->Text != "")
{
try
{
String^ connectionstring = "Data Sourse=WIN-DFFK8CA8HJQ\SQLEXPRESS;Initial Catalog=DBConstructorTesting;Persist Security Info=True;Integrated Security=true; ";
SqlConnection con(connectionstring);
con.Open ();
String^ sqlquery = "Insert into Test values ('"+this->textBox1->Text+"','" + this->textBox2->Text + "','" + this->textBox3->Text + "','" + this->textBox4->Text + "','" + this->textBox5->Text + "')";
SqlCommand cmd(sqlquery, % con);
cmd.ExecuteNonQuery();
con.Close();

}
catch (Exception^ ex)
{
throw ex;
}
num += 1;
label5->Text = num.ToString();
textBox1->Text = "";
textBox2->Text = "";
textBox3->Text = "";
textBox4->Text = "";
textBox5->Text = "";
}
else
{
button1->Text = "Завершить";
}

}
private: System::Void checkBox2_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
if (checkBox2->Checked == true)
{
otvets[text1][1] = 1;
checkBox1->Checked = false;
checkBox3->Checked = false;
checkBox4->Checked = false;
}
}
private: System::Void checkBox3_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
if (checkBox3->Checked == true)
{
otvets[text1][2] = 1;
checkBox1->Checked = false;
checkBox2->Checked = false;
checkBox4->Checked = false;
}
}
private: System::Void checkBox4_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
if (checkBox4->Checked == true)
{
otvets[text1][3] = 1;
checkBox1->Checked = false;
checkBox2->Checked = false;
checkBox3->Checked = false;
}
}
private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)
{

String^ tQuestion;
tQuestion = textBox1->Text;

}
private: System::Void textBox2_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
String^ tAnswer_1;
tAnswer_1 = textBox2->Text;
}
private: System::Void textBox3_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
String^ tAnswer_2;
tAnswer_2 = textBox3->Text;
}
private: System::Void textBox4_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
String^ tAnswer_3;
tAnswer_3 = textBox4->Text;
}
private: System::Void textBox5_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
String^ tAnswer_4;
tAnswer_4 = textBox5->Text;
}
};
}
Голосование за лучший ответ
Fatal Norman Гуру (4677) 1 месяц назад
Ошибка, которую вы получили, связана с опечаткой в строке подключения. Конкретно, у вас ошибка в ключевом слове "Data Sourse". Правильное ключевое слово должно быть **Data Source**, а не **Data Sourse**.

Вот исправленный код строки подключения:

```cpp
String^ connectionstring = "Data Source=WIN-DFFK8CA8HJQ\\SQLEXPRESS;Initial Catalog=DBConstructorTesting;Persist Security Info=True;Integrated Security=true;";
```

Дополнительно, хочу отметить, что в C++/CLI нужно использовать двойные обратные слэши (`\\`) для экранирования символов в строках, поэтому `WIN-DFFK8CA8HJQ\SQLEXPRESS` становится `WIN-DFFK8CA8HJQ\\SQLEXPRESS`.

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