我正在尝试使用参数将一些信息插入到数据库中,但不是添加参数值,而是将参数名称添加到数据库中。 这是我的代码:
try {
vSqlCeConnection.Open();
SqlCeCommand vCommand = new SqlCeCommand(@"INSERT INTO BusinessCards
( CalligraphyNeeded , Comments , NameEnglish
, JobTitleEnglish , NameArabic , JobTitleArabic
,BOBOX , HomePhoneNumber
, FAXNumber , OfficePhoneNumber , MobileNumber , Email )
VALUES
( @CalligraphyNeeded, '@Comments' ,'@NameEnglish'
,'@JobTitleEnglish' ,'@NameArabic' ,'@JobTitleArabic'
,'@BOBOX' ,'@HomePhoneNumber'
,'@FAXNumber' ,'@OfficePhoneNumber' ,'@MobileNumber'
,'@Email' ) " , vSqlCeConnection);
if (checkBoxCalligraphy.Checked == true)
{
vCommand.Parameters.AddWithValue("@CalligraphyNeeded", 1);
}
else
{
vCommand.Parameters.AddWithValue("@CalligraphyNeeded", 0);
}
vCommand.Parameters.AddWithValue("@Comments", richTextBoxComments.Text );
vCommand.Parameters.AddWithValue("@NameEnglish", textBoxEnglishName.Text); vCommand.Parameters.AddWithValue("@JobTitleEnglish",richTextBoxEnglishJobTitle.Text);
vCommand.Parameters.AddWithValue("@NameArabic", textBoxArabicName.Text + " ff");
vCommand.Parameters.AddWithValue("@JobTitleArabic", richTextBoxArabicJobTiltle.Text + " ff");
vCommand.Parameters.AddWithValue("@BOBOX", textBoxPOBox.Text + " ff");
vCommand.Parameters.AddWithValue("@HomePhoneNumber", textBoxHomePhone.Text + " ff");
vCommand.Parameters.AddWithValue("@FAXNumber", textBoxFax.Text + " ff");
vCommand.Parameters.AddWithValue("@OfficePhoneNumber", textBoxOfficePhone.Text + " ff");
vCommand.Parameters.AddWithValue("@MobileNumber", textBoxMobile.Text + " ff");
vCommand.Parameters.AddWithValue("@Email", textBoxEmail.Text + " ff");
MessageBox.Show(vCommand.CommandText);
vCommand.Prepare();
vCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show("Sorry error: " + ex.Message);
}
但是当我执行代码时它给了我这个
最佳答案
它不起作用的原因是因为参数用单引号引起来,导致它被转换为字符串文字,删除它们周围的单引号,它肯定会起作用。
参数是标识符而不是字符串文字,因此它们不能用单引号引起来。
VALUES
( @CalligraphyNeeded, @Comments , @NameEnglish
,@JobTitleEnglish , @NameArabic , @JobTitleArabic
,@BOBOX , @HomePhoneNumber
,@FAXNumber , @OfficePhoneNumber , @MobileNumber
,@Email
)
关于c# - 为什么参数在我的 INSERT 语句中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448615/