FbConnection adder = new FbConnection(ClsConnection.FirebirdSQL);
adder.Open();
FbCommand fbcmd = new FbCommand("INSERT INTO
EMPLOYEE(EMPLOYEE_NO,EMPLOYEE_LASTNAME,
EMPLOYEE_FIRSTNAME,EMPLOYEE_MIDDLENAME,
EMPLOYEE_BDATE,EMPLOYEE_STATUS,
EMPLOYEE_POSITION) VALUES(
@textBox1.Text,@textBox2.Text,@textBox3.Text,
@textBox4.Text,@textBox5.Text,@textBox6.Text,
@textBox7.Text)", adder);
// fbcmd.Parameters.AddWithValue(
//FbCommand fbCom = new FbCommand("INSERT INTO players(ID,name,score) VALUES (@id,@name,@score)", fbCon);
//fbCom.Parameters.AddWithValue("id", zID + 1);
//fbCom.Parameters.AddWithValue("name", var);
//fbCom.Parameters.AddWithValue("score", score);
fbcmd.Parameters.Add("textBox1", FbDbType.SmallInt);
fbcmd.Parameters.Add("textBox2", FbDbType.VarChar);
fbcmd.Parameters.Add("textBox3", FbDbType.VarChar);
fbcmd.Parameters.Add("textBox4", FbDbType.VarChar);
fbcmd.Parameters.Add("textBox5", FbDbType.VarChar);
fbcmd.Parameters.Add("textBox6", FbDbType.VarChar);
fbcmd.Parameters.Add("textBox7", FbDbType.VarChar);
fbcmd.ExecuteNonQuery();
fbcmd.Connection.Close();
答案 0 :(得分:1)
我可以看到你在根据自己的需要改变某个人的例子时犯了三个错误。 也许还有更多,但我不是C#家伙,也无法发现它们。
错误#1: SQL术语不包含点。我认为参数标识符可以归类为SQL术语。
您复制的示例中的代码:
.... VALUES(@ id,@ name,@ score)" ....
您通过此示例制作的代码:
..... VALUES(@ textBox1.Text,@ textBox2.Text,.....
" @name
"但是突然间有#34; @textBox2.Text
"
错误#2:对于SQL输出参数,仅指定参数数据类型就足够了,因为该值来自数据库。但是对于输入参数,数据类型和值都是必需的。更多的是,通常你只能提供价值,因为数据库库会推断出#34;来自值的数据类型。但必须为每个使用的输入参数提供值。
您复制的示例中的代码:
fbCom.Parameters.Add WithValue ("名称", var );
您通过此示例制作的代码:
fbcmd.Parameters.Add(" textBox2",FbDbType.VarChar);
示例中有值绑定,但突然在您的代码中没有任何值。
错误#3:在编程中使用某个命名实体时,无论是函数,变量还是参数,通常都是通过名称来引用它们,通过标识符。这意味着在程序中想要使用同一实体的所有位置 - 名称应该完全相同。
您复制的示例中的代码:
....价值观(@id,@ 名称,@ score)" ....
fbCom.Parameters.AddWithValue(" name ",var);
您通过此示例制作的代码:
..... VALUES(@ textBox1.Text,@ textBox2.Text ,.....
fbcmd.Parameters.Add(" textBox2 ",FbDbType.VarChar);
源代码示例代码在两行中使用了SAME标识符 - " name
"标识符。但是您使用了不同的名称:一行使用" textBox2.Text'
标识符,但另一行使用" textBox2'
代替。
为了让您的代码能够像示例代码一样工作,您必须解决这三个错误: