Member 13268442 Ответов: 1

Не существует сопоставления типа объекта system.windows.forms.textbox с известным собственным типом управляемого поставщика


SqlStr = "вставить в [dbo].[Активы] ([AssetID],[AssetBarcode],[AssetName],[AssetType],[AssetDesc],[Store],[AssetLocation],[Manufature],[Brand],[Model],[AssetMore],[AssetSNo],[AssetTotal],[Status],[Condition],[AssetExpiry],[AssetNotes],[PhotoPath],[AssetVendor],[AssetPurRate],[AssetScrap],[AssetYear],[AssetPurDate],[AssetServiceStartDate],[AssetWarranty],[AssetDepreciation],[AssetDepreciationRate]) ценности " _
& " (@AssetID,@AssetBarcode,@AssetName,@AssetType,@AssetDesc,@Store,@AssetLocation,@Manufature,@Brand,@Model,@AssetMore,@AssetSNo,@AssetTotal,@Status,@Condition,@AssetExpiry,@AssetNotes,@PhotoPath,@AssetVendor,@AssetPurRate,@AssetScrap,@AssetYear,@AssetPurDate,@AssetServiceStartDate,@AssetWarranty,@AssetDepreciation,@AssetDepreciationRate) "

-Конец, Если
Попробуй
MAINCON.Параметр ConnectionString = Параметр ConnectionString
MAINCON.Открыть()
Dim DBF как новый SqlClient.SqlCommand(SqlStr, MAINCON)
С DBF.Параметры
.AddWithValue("@AssetID", TxtAssetID)
.AddWithValue ("@AssetBarcode", TxtAssetBarcode.Текст)
.AddWithValue ("@AssetName", TxtAssetName.Text)
.AddWithValue("@AssetType", TxtAssetType.Text)
.AddWithValue ("@AssetDesc", TxtDescr.Text)
.AddWithValue("@Склад", TxtStoreName.Текст)
.AddWithValue ("@AssetLocation", TxtLocation.Текст)
.AddWithValue("@Изготовление", TxtManufacture.Текст)
.AddWithValue (Бренд"@", TxtBrand.Текст)
.AddWithValue("@Модель", TxtModel.Текст)
.AddWithValue ("@AssetMore", TxtMoreInfo.Text)
.AddWithValue ("@AssetSNo", TxtSerialNumber.Text)
.AddWithValue ("@AssetTotal", TxtQty.Text)
.AddWithValue ("@Status", TxtAssetStatus.Текст)
.AddWithValue ("@Condition", txtCondition.Текст)
.AddWithValue("@AssetExpiry", TxtExpiry.Value)
.AddWithValue ("@AssetNotes", TxtNote.Text)
.AddWithValue ("@PhotoPath", PhotoPathForLedgers & "\Others\" & TxtAssetName.Текст & ".jpg")
.AddWithValue("@AssetVendor", TxtVendorName.Text)
.AddWithValue("@AssetPurRate", TxtPurRate.Text)
.AddWithValue("@AssetScrap", TxtScrapValue.Текст)
.AddWithValue ("@AssetYear", TxtYears.Text)
.AddWithValue("@AssetPurDate", TxtpurchaseDate.Ценность)
.AddWithValue("@AssetServiceStartDate", TxtServiceStartDate.Ценность)
.AddWithValue("@AssetWarranty", TxtWarrantyDate.Ценность)
.AddWithValue("@AssetDepreciation", TxtDepreMethod.Текст)
.AddWithValue("@AssetDepreciationRate", TxtDepRate.Text)


Конец С
ДБФ.Метод executenonquery()
DBF = ничего
MAINCON.Закрывать()
Поймать ex как исключение
С помощью MsgBox(исх.Сообщение)

Что я уже пробовал:

я попробовал добавить assetid.text, но не изменил никого, помогите мне заранее спасибо

1 Ответов

Рейтинг:
2

phil.o

Если поле в вашей базе данных имеет целочисленный тип, вы должны проанализировать строку текстового поля до допустимого целого числа:

.AddWithValue("@AssetID", Int.Parse(TxtAssetID.Text))

Также полезно проверить, является ли текст в текстовом поле допустимым целым числом ; TryParse метод - хороший инструмент для этого:
Dim id As Integer
If Int.TryParse(TxtAssetID.Text, id) Then
   DBF.Parameters.AddWithValue("@AssetID", id)
Else
   '' The text in the textbox was not a valid integer representation.
   '' You may have to handle that case here.
End If


Member 13268442

но assetid тип данных имеет тип данных bigint

phil.o

Bigint-это 64 бита, поэтому вы должны использовать Long введите в .NET вместо Int.