错误-没有为一个或多个必需参数给出值. [英] Error-No value given for one or more required parameters.

查看:101
本文介绍了错误-没有为一个或多个必需参数给出值.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么给出此错误.我想提交34个字段中的17个字段的数据.
只想将这些低于值的值提交给数据库
v1 = TextBox1.Text.Trim()
v2 = TextBox2.Text.Trim()
v3 = TextBox3.Text.Trim()
v4 = TextBox4.Text.Trim()
v5 = TextBox5.Text.Trim()
v6 = TextBox6.Text.Trim()
v7 = TextBox7.Text.Trim()
v8 = TextBox8.Text.Trim()
v9 = TextBox9.Text.Trim()
v10 = ta1.Value
v11 = ta2.Value
v12 = ta3.Value
v13 = ta4.Value
v14 = ta5.Value
v15 = ta6.Value
v16 = ta7.Value
v17 = ta8.Value

错误-没有为一个或多个必需参数提供值.
我的代码如下

Why this error giving.I want to submit 17 field''s data out of 34.
only want to submit these below value to database
v1 = TextBox1.Text.Trim()
v2 = TextBox2.Text.Trim()
v3 = TextBox3.Text.Trim()
v4 = TextBox4.Text.Trim()
v5 = TextBox5.Text.Trim()
v6 = TextBox6.Text.Trim()
v7 = TextBox7.Text.Trim()
v8 = TextBox8.Text.Trim()
v9 = TextBox9.Text.Trim()
v10 = ta1.Value
v11 = ta2.Value
v12 = ta3.Value
v13 = ta4.Value
v14 = ta5.Value
v15 = ta6.Value
v16 = ta7.Value
v17 = ta8.Value

Error - No value given for one or more required parameters.
My code given below

s = TextBox5.Text.Trim()
     Try
         cn.Open()
         cmd = New OleDbCommand("Select ccode from template where vmail='" & s & "'", cn)
         dr = cmd.ExecuteReader
         dr.Read()
         b = dr.HasRows()
         If b Then
             Label2.Text = "Record already EXIST"
             TextBox1.Focus()
             v1 = TextBox1.Text.Trim()
             v2 = TextBox2.Text.Trim()
             v3 = TextBox3.Text.Trim()
             v4 = TextBox4.Text.Trim()
             v5 = TextBox5.Text.Trim()
             v6 = TextBox6.Text.Trim()
             v7 = TextBox7.Text.Trim()
             v8 = TextBox8.Text.Trim()
             v9 = TextBox9.Text.Trim()
             v10 = ta1.Value
             v11 = ta2.Value
             v12 = ta3.Value
             v13 = ta4.Value
             v14 = ta5.Value
             v15 = ta6.Value
             v16 = ta7.Value
             v17 = ta8.Value

             v18 = TextBox10.Text.Trim()
             v19 = TextBox11.Text.Trim()
             v20 = TextBox12.Text.Trim()
             v21 = TextBox13.Text.Trim()
             v22 = TextBox14.Text.Trim()
             v23 = TextBox15.Text.Trim()
             v24 = TextBox16.Text.Trim()
             v25 = TextBox17.Text.Trim()
             v26 = TextBox18.Text.Trim()
             v27 = ta9.Value
             v28 = ta10.Value
             v29 = ta11.Value
             v30 = ta12.Value
             v31 = ta13.Value
             v32 = ta14.Value
             v33 = ta15.Value
             v34 = ta16.Value
         Else
             Try
                 str = "Insert into template (tname,tdob,tsex,tmo,tmail,tcity,tpin,tst,tco,tca,tskill,tedu,ttrain,texpt,tproj,texp,tint) values('" & v1 & "','" & v2 & "','" & v3 & "','" & v4 & "','" & v5 & "','" & v6 & "','" & v7 & "','" & v8 & "','" & v9 & "','" & v10 & "','" & v11 & "','" & v12 & "','" & v13 & "','" & v14 & "','" & v15 & "','" & v16 & "','" & v17 & "')"
                 cmd = New OleDbCommand(str, cn)
                 cmd.ExecuteNonQuery()
                 Label2.Text = "Record Added"
             Catch ex As Exception
                 Response.Write(ex.Message)
             End Try
         End If
     Catch ex As Exception
         Response.Write(ex.Message)
     End Try


     cn.Close()

推荐答案

请不要那样做.
这是SQL注入攻击的主要秘诀-改为使用参数化查询:
Please, don''t do it that way.
That is a major recipe for an SQL Injection attack - use Parametrized queries instead:
str = "INSERT INTO template (tname,tdob,tsex,tmo,tmail,tcity,tpin,tst,tco,tca,tskill,tedu,ttrain,texpt,tproj,texp,tint) VALUES (@tname,@tdob,@tsex,@tmo...
cmd.Parameters.AddWithValue("@tname",TextBox1.Text.Trim())
cmd.Parameters.AddWithValue("@tdob",TextBox2.Text.Trim())
...

此外,重命名控件:您可能还记得TextBox7是今天的图钉"-但下周不会.称它与它的用法有关!
然后,您可以在参数stting中添加对空值的检查,并将DBNull.Value馈入数据库instaed,这将解决您的问题.

In addition, rename your controls: you may remember that TextBox7 is the "pin" today - but you won''t next week. Call it something related to it''s usage!
Then, you can add a check for null values to your parameter stting, and feed DBNull.Value to the database instaed, which will cure your problem.


这篇关于错误-没有为一个或多个必需参数给出值.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆