Ich stehe vor einem Problem, das bei der Deklaration einer skalaren Variablen bekannt ist. Ich habe so viele Tricks ausprobiert und in diesem Forum nutzlos gesucht.
Problem
Ich verwende Dapper in meiner Anwendung und nach dem Herstellen einer Verbindung mit dem SQL Server rufe ich eine gespeicherte Prozedur auf, um eine Firma in die Unternehmenstabelle einzufügen.
Die Stored Procedure funktioniert in SSMS gut, wenn sie manuell ausgeführt wird, aber in der Anwendung gibt es weiterhin einen Fehler. Sie müssen die skalare Variable in @comp_Addre
. Alle anderen Variablen funktionieren gut außer diesem und ich verstehe wirklich nicht warum.
Code
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);
}
}
Ich habe momentan keine funktionierende Dapper & C # -Lösung auf meinem Rechner, aber nur durch eine bessere Formatierung Ihres Codes können Sie den Fehler / Tippfehler im Code sehen.
Der folgende Code sollte funktionieren, da ich den comp_Addre
in company_Address
im parametrisierten Aufruf der gespeicherten Prozedur geändert comp_Addre
.
Natürlich können Sie den comp_Addre
in der gespeicherten Prozedur behalten und die Eigenschaft von companyModel
in 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);
}
}
Abgesehen davon, dass Sie die Eigenschaften für beide Modelle gleich nennen, rate ich Ihnen, die Namenskonventionen der C # -Sprache zu überprüfen. Wenn Sie sie lesen (und durchsetzen), wird Ihr Code für mehrere Personen / Teams einfacher und weniger typografisch / fehleranfällig.