【问题标题】:setting a valid value for textbox [closed]为文本框设置有效值[关闭]
【发布时间】:2013-02-25 02:32:19
【问题描述】:

我正在创建一个程序,我想限制一个字符串插入到我的Database 中,有人可以告诉我该怎么做吗?

到目前为止,这是我的代码:

 Dim SQLcon As New SqlConnection
        Dim SQLdr As SqlDataReader
        Try
            SQLcon.ConnectionString = "Data Source=#### ;Initial Catalog=####;Persist Security Info=True;User ID=####;Password=####"
            Dim SQLcmd As New SqlCommand("INSERT INTO dbo.Patients" & _
                                         "(pIDNo,pLName,pFName,pMI,pSex,pStatus,pTelNo,pDocID,pAddr,pStreet,pBarangay,pCity,pProvince,pLNameKIN,pFNameKIN,pMIKIN,pRelationKIN,pTotalDue)" & _
                                         "VALUES(@pIDNo,@pLName,@pFName,@pMI,@pSex,@pStatus,@pTelNo,@pDocID,@pAddr,@pStreet,@pBarangay,@pCity,@pProvince,@pLNameKIN,@pFNameKIN,@pMIKIN,@pRelationKIN,@totaldue)", SQLcon)
            SQLcmd.Parameters.AddWithValue("@pIDNo", txtPNumber.Text)
            SQLcmd.Parameters.AddWithValue("@pLName", txtLname.Text)
            SQLcmd.Parameters.AddWithValue("@pFName", txtFname.Text)
            SQLcmd.Parameters.AddWithValue("@pMI", txtMI.Text)
            SQLcmd.Parameters.AddWithValue("@pSex", txtPatientSex.Text)
            SQLcmd.Parameters.AddWithValue("@pStatus", txtStatus.Text)
            SQLcmd.Parameters.AddWithValue("@pTelNo", txtPatientTelNo.Text)
            SQLcmd.Parameters.AddWithValue("@pDocID", txtPatientDoctor.Text)
            SQLcmd.Parameters.AddWithValue("@pAddr", txtStreetNumber.Text)
            SQLcmd.Parameters.AddWithValue("@pStreet", txtStreetName.Text)
            SQLcmd.Parameters.AddWithValue("@pBarangay", txtBarangay.Text)
            SQLcmd.Parameters.AddWithValue("@pCity", txtCity.Text)
            SQLcmd.Parameters.AddWithValue("@pProvince", txtProvince.Text)
            SQLcmd.Parameters.AddWithValue("@pLnameKIN", txtKinLname.Text)
            SQLcmd.Parameters.AddWithValue("@pFnameKIN", txtKinFname.Text)
            SQLcmd.Parameters.AddWithValue("@pMIKIN", txtKinMI.Text)
            SQLcmd.Parameters.AddWithValue("@pRelationKIN", txtRelationToPatient.Text)
            SQLcmd.Parameters.Add("@totaldue", SqlDbType.Money).Value = Decimal.Parse(txtTotalDue.Text)
            SQLcon.Open()
            MsgBox("Patient Added!", MsgBoxStyle.Information)
            SQLdr = SQLcmd.ExecuteReader()
        Catch ex As Exception
            MessageBox.Show("Error Occured, Can't Add Patient!" & ex.Message)
        Finally
            SQLcon.Close()
        End Try
        Return ""

txtSex.Text

我只希望用户只为男性输入“M”,为女性输入“F”

txtStatus.Text

我只希望用户只输入“S”代表单身,“M”代表已婚,“W”代表寡妇,“H”代表分居

还有一件事:

txtMItxtMIKIN中,用户输入值后是否可以进行转换?

例子:

如果用户输入 'a,b,c,d,e,f,g,h,i,j,k,l,m, .......' 作为他/她的中间名首字母,它将在我的Database 中自动插入为 'A,B,C,D,E,F,G,H,I,J,K,L,M, ......'

【问题讨论】:

  • 您应该使用ComboBox 而不是TextBox。它会让你的生活更轻松。
  • 但中间初始没有必要,因为有时有些人有 2 M.I. ,而我的老板说我只能使用文本框...
  • 我不知道你到底需要什么,但据我所知,我总是使用combobox 来作为你的答案。首先,为了避免用户打错,所以当我们插入数据库时​​,用户的所有结果都是标准的,其次,帮助用户重新输入所有相同的结果。

标签: sql database visual-studio-2010 sql-server-2005 textbox


【解决方案1】:

因为combobox已经得到答复。

我想回答一下即将换成UPPERCASE

您可以使用这些类型的代码。

方式#1

Dim upper as string = (txtMI.text.ToUpper())

方式#2

Dim upper as string = (UCase(txtMI.text))

方式#3

Dim upper as string = (StrConv(txtMI.text,VbStrConv.UpperCase))

【讨论】:

  • 让我试试这个,先生 kolonel :)
  • 我应该把这些代码放在哪里?我在这里遇到了麻烦>​​.
  • 您可以像往常一样在代码顶部初始化,然后输入upper = (txtMI.text.ToUpper()) 或其他 2 个。它的工作方式是将您的值从txtMI 文本框转换为大写,并将其保存到名为 upper(可选名称)的变量中。当你想插入数据库时​​,调用 upper 而不是 txtMI.text 了。
【解决方案2】:

你正在插入数据,所以你需要调用:

SQLcmd.ExecuteNonQuery()

而不是

SQLcmd.ExecuteReader()

【讨论】:

  • “整数”类型的值无法转换为“System.Data.SqlClient.SqlCommand”
  • 我并不是说您的答案是错误的,我只是发布了刚刚显示在我的屏幕上的错误,我将其发布在这里,因为我不知道如何解决它...... >.
  • 使用 AddWithValue() 的问题是它可能会做出错误的选择。更明确地使用您的数据类型:使用 Add()
【解决方案3】:
txtMI.Text = StrConv(txtMI.Text, VbStrConv.Uppercase) this codes solve my problem... 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多