0

コードを更新しました .Value = DBNull.Value 行に追加しました

日付と時刻のテキストボックスに null 値を受け入れるデータベースの更新に関する提案 すべての推奨事項/提案は大歓迎です

Dim cmd As SqlCommand = sqlconn.CreateCommand
            sqlconn.Open()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "UpdateEquipmentProfile"

            'declare the variables'
            cmd.Parameters.Add("@OE_ID", SqlDbType.VarChar, 11, "oeq-su-999").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Category", SqlDbType.Char, 3, "COM").Value = DBNull.Value
            cmd.Parameters.Add("@OE_SubCategory", SqlDbType.Char, 3, "SU").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Name", SqlDbType.VarChar, 35, "adminpmis01").Value = DBNull.Value
            cmd.Parameters.Add("@OE_User", SqlDbType.VarChar, 35, "Ivan").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Brand", SqlDbType.VarChar, 15, "DELL").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Model", SqlDbType.VarChar, 35, "optiplex").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Specs", SqlDbType.VarChar, 1000, "dualcore").Value = DBNull.Value
            cmd.Parameters.Add("@OE_SerialNo", SqlDbType.VarChar, 35, "sgh5960").Value = DBNull.Value
            cmd.Parameters.Add("@OE_PropertyNo", SqlDbType.VarChar, 35, "j7h7h6g6f2").Value = DBNull.Value
            cmd.Parameters.Add("@OE_MacAddress", SqlDbType.VarChar, 100, "j7h7:h6g6f2").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Static_IP", SqlDbType.VarChar, 15, "192.168.1.5").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Vendor", SqlDbType.VarChar, 35, "ADWAYS").Value = DBNull.Value
            cmd.Parameters.Add("@OE_PurchaseDate", SqlDbType.SmallDateTime).Value = DBNull.Value
            cmd.Parameters.Add("@OE_WarrantyInclusiveYear", SqlDbType.Int).Value = DBNull.Value
            cmd.Parameters.Add("@OE_WarrantyStatus", SqlDbType.Char, 2, "IN").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Status", SqlDbType.VarChar, 15, "Good").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Dept_Code", SqlDbType.Char, 3, "ADM").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Location_Code", SqlDbType.Char, 8, "ADM_OFC").Value = DBNull.Value
            cmd.Parameters.Add("@OE_Remarks", SqlDbType.VarChar, 1000, "ACTIVE").Value = DBNull.Value
            cmd.Parameters("@OE_ID").Value = txtOEID.Text
            cmd.Parameters("@OE_Category").Value = cmbCategory.Text
            cmd.Parameters("@OE_SubCategory").Value = cmbSubCategory.Text
            cmd.Parameters("@OE_Name").Value = txtName.Text
            cmd.Parameters("@OE_User").Value = txtUser.Text
            cmd.Parameters("@OE_Brand").Value = cmbBrand.Text
            cmd.Parameters("@OE_Model").Value = cmbModel.Text
            cmd.Parameters("@OE_Specs").Value = txtSpecs.Text
            cmd.Parameters("@OE_SerialNo").Value = txtSerialNo.Text
            cmd.Parameters("@OE_PropertyNo").Value = txtPropertyNo.Text
            cmd.Parameters("@OE_MacAddress").Value = txtMacAddress.Text
            cmd.Parameters("@OE_Static_IP").Value = txtStaticIp.Text
            cmd.Parameters("@OE_Vendor").Value = txtVendor.Text
            cmd.Parameters("@OE_PurchaseDate").Value = txtPurchaseDate.Text
            cmd.Parameters("@OE_WarrantyInclusiveYear").Value = txtWarrantyInclusiveYear.Text
            cmd.Parameters("@OE_WarrantyStatus").Value = txtWarrantyStatus.Text
            cmd.Parameters("@OE_Status").Value = txtStatus.Text
            cmd.Parameters("@OE_Dept_Code").Value = cmbDeptCode.Text
            cmd.Parameters("@OE_Location_Code").Value = cmbLocationCode.Text
            cmd.Parameters("@OE_Remarks").Value = txtRemarks.Text
            cmd.ExecuteNonQuery()
            MsgBox("Successfully Updated Equipment Profile")
            sqlconn.Close()
4

1 に答える 1

0

1.まず、DateTime フィールドの null を許可するプロパティを設定していない場合は、null を許可するように設定して、null を受け入れるようにします。

2.次に、テキストボックスに日付が入力されていない場合、UI コードでパラメーターを渡さないでください。

3.次に、パラメーター値を渡すためのコードで、パラメーター値が null であるかどうかを確認し、そのパラメーターの値を DBNull.Value として渡します。

于 2013-04-30T04:29:23.780 に答える