[英]C# using Dapper and sql server scalar variable
我遇到一個在聲明標量變量時很熟悉的問題。 我嘗試了很多技巧,卻沒有在這個論壇中進行搜索。
問題
我在應用程序中使用Dapper,並且在連接到SQL Server之后,我正在調用存儲過程以將公司插入到Company表中。
手動執行存儲過程時,該存儲過程在SSMS中可以正常工作,但是在應用程序中,它總是給我錯誤,您必須在@comp_Addre
聲明標量變量。 除此變量外,所有其他變量都可以正常工作,我真的不明白為什么。
碼
public void insertComp(string compID, string compName, string comp_Addressing, string teleComp, string faxComp, string foundDate, string ownername, string license_ID, string taxingID, string licenseExpiring, string cb_country)
{
using (IDbConnection Connecting = new System.Data.SqlClient.SqlConnection(connectHelper.CnnVal("hrDB")))
{
List<companyModel> companies = new List<companyModel>();
companies.Add(new companyModel { companyID = compID, companyName = compName, company_Address=comp_Addressing,telephoneNumber = teleComp, faxNumber = faxComp, foundationDate = foundDate, ownerName = ownername, licenseID = license_ID, taxID = taxingID, licenseExpire = licenseExpiring, country=cb_country });
Connecting.Execute("dbo.InsertComp @CompanyID, @CompanyName, @comp_Addre, @TelephoneNumber, @FaxNumber, @FoundationDate, @OwnerName, @LicenseID, @TaxID, @LicenseExpire, @Country", companies);
}
}
我的機器上目前沒有可正常使用的Dapper&C#解決方案,但是通過更好地格式化代碼,您可以在代碼中看到錯誤/錯誤。
下面的代碼應該可以工作,因為在存儲過程的參數化調用中,我已將comp_Addre
更改為company_Address
。
當然,你也可以保持comp_Addre
在存儲過程和的屬性更改companyModel
到company_Address
。
public void insertComp(string compID, string compName, string comp_Addressing, string teleComp, string faxComp, string foundDate, string ownername, string license_ID, string taxingID, string licenseExpiring, string cb_country)
{
using (IDbConnection Connecting = new System.Data.SqlClient.SqlConnection(connectHelper.CnnVal("hrDB")))
{
List<companyModel> companies = new List<companyModel>();
companies.Add(
new companyModel {
companyID = compID,
companyName = compName,
company_Address = comp_Addressing,
telephoneNumber = teleComp,
faxNumber = faxComp,
foundationDate = foundDate,
ownerName = ownername,
licenseID = license_ID,
taxID = taxingID,
licenseExpire = licenseExpiring,
country = cb_country });
Connecting.Execute("dbo.InsertComp
@CompanyID,
@CompanyName,
@company_Address,
@TelephoneNumber,
@FaxNumber,
@FoundationDate,
@OwnerName,
@LicenseID,
@TaxID,
@LicenseExpire,
@Country", companies);
}
}
除了在兩個模型上都對屬性進行命名之外,我建議您檢查一下C#語言的命名約定。 閱讀(並強制執行)它們將使您的代碼在多個人員/團隊中更容易理解,並且不會出現錯字/錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.