Я работаю над проектом, чтобы десерилизовать XML и прочитать его в базе данных.Должен объявить скалярную переменную
У меня есть следующий код:
query += ", NationalRegistrationDate = @NationalRegistrationDate";
command1 = new SqlCommand(query, connection);
DateTime myDate = DateTime.ParseExact(d, "yyyyMMdd",
System.Globalization.CultureInfo.InvariantCulture);
command1.Parameters.AddWithValue("@NationalRegistrationDate", myDate);
Я получаю эту ошибку:
must declare the scalar variable @NationalRegistrationDate
Кто-нибудь знает, почему я получаю эту ошибку?
Вот остальная часть кода:
using (var connection = new SqlConnection(connetionString))
{
try
{
connection.Open();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("DatabasConnection Done");
DateTime datum = DateTime.Now;
string LastChangedBy = "System";
foreach (Person p in myPersons)
{
SqlCommand command1 = new SqlCommand();
try
{
command1 = Avreg(p.UnregistrationReason, p.GivenNameNumber, p.ProtectedIdentity, p.CitizenshipDate, p.NationalRegistrationDate, connection);
command1.Parameters.AddWithValue("@PersonalIdentityNumber", string.Format("{0}{1}", p.PersonalIdentityNumber, p.SpecialIdentityNumber));
command1.Parameters.AddWithValue("@FirstName", p.FirstName ?? (object)DBNull.Value);
command1.Parameters.AddWithValue("@LastName", p.LastName ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@NationalRegistrationCountyCode", p.NationalRegistrationCountyCode ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@NationalRegistrationMunicipalityCode", p.NationalRegistrationMunicipalityCode ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@NationalRegistrationDistributionAddress1", p.NationalRegistrationDistributionAddress1 ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@NationalRegistrationDistributionAddress2", p.NationalRegistrationDistributionAddress2 ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@NationalRegistrationPostCode", p.NationalRegistrationPostCode ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@NationalRegistrationCity", p.NationalRegistrationCity ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@BirthCountyCode", p.BirthCountyCode ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@UnregistrationDate", p.UnregistrationDate ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@BirthParish", p.BirthParish ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@CitizenshipCode", p.CitizenshipCode ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@CitizenshipDate", p.CitizenshipDate ?? DBNull.Value.ToString());
//command1.Parameters.AddWithValue("@NationalRegistrationDate", p.NationalRegistrationDate ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@ForeignDistrubtionAddress1", p.ForeignDistrubtionAddress1 ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@ForeignDistrubtionAddress2", p.ForeignDistrubtionAddress2 ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@ForeignDistrubtionAddress3", p.ForeignDistrubtionAddress3 ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@ForeignBirthCity", p.ForeignBirthCity ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@LastChangedBy", LastChangedBy);
command1.Parameters.AddWithValue("@LastChangedDate", datum);
command1.ExecuteNonQuery();
Console.WriteLine(string.Format("{0}{1}", p.PersonalIdentityNumber, p.SpecialIdentityNumber));
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Console.WriteLine("Done");
Console.WriteLine("Alla fält uppdaterade");
Console.ReadKey();
}// Put a break-point here, then mouse-over PersonalIdentityNumber... deserializedList contains everything if you need it
catch (Exception e)
{
Console.Write(" ---- FEL VID INLÄSNINGEN ------ " + e.Message);
Console.ReadKey();
}
}
public static SqlCommand Avreg(string s, string t, string p, string c, string d, SqlConnection connection)
{
try
{
var query = "UPDATE Seamen SET FirstName = @FirstName, "+
"LastName = @LastName, " +
"NationalRegistrationCountyCode = @NationalRegistrationCountyCode, " +
"NationalRegistrationMunicipalityCode = @NationalRegistrationMunicipalityCode, " +
"NationalRegistrationDistributionAddress1 = @NationalRegistrationDistributionAddress1, " +
"NationalRegistrationDistributionAddress2 = @NationalRegistrationDistributionAddress2, " +
"UnregistrationDate = @UnregistrationDate, " +
"NationalRegistrationPostCode = @NationalRegistrationPostCode, " +
"NationalRegistrationCity = @NationalRegistrationCity, " +
"BirthCountyCode = @BirthCountyCode, " +
"BirthParish = @BirthParish, " +
"CitizenshipCode = @CitizenshipCode, " +
"ForeignDistrubtionAddress1 = @ForeignDistrubtionAddress1, " +
"ForeignDistrubtionAddress2 = @ForeignDistrubtionAddress2, " +
"ForeignDistrubtionAddress3 = @ForeignDistrubtionAddress3, " +
"ForeignBirthCity = @ForeignBirthCity, " +
"LastChangedBy = @LastChangedBy, " +
"LastChangedDate = @LastChangedDate";
SqlCommand command1;
if (c == "0")
{
query += ", CitizenshipDate = null";
command1 = new SqlCommand(query, connection);
}
else
{
query += ", CitizenshipDate = @CitizenshipDate";
command1 = new SqlCommand(query, connection);
command1.Parameters.AddWithValue("@CitizenshipDate", c ?? DBNull.Value.ToString());
}
if (d == "0")
{
query += ", NationalRegistrationDate = null;";
command1 = new SqlCommand(query, connection);
}
else
{
query += ", NationalRegistrationDate = @NationalRegistrationDate";
command1 = new SqlCommand(query, connection);
DateTime myDate = DateTime.ParseExact(d, "yyyyMMdd",
System.Globalization.CultureInfo.InvariantCulture);
command1.Parameters.AddWithValue("@NationalRegistrationDate", myDate);
}
if (p == "J")
{
query = "UPDATE Seamen SET FirstName ='Skyddad personuppgift', " +
"LastName = 'Se hjälptext', " +
"ProtectedIdentity = '1', " +
"NationalRegistrationCountyCode = NULL, " +
"NationalRegistrationMunicipalityCode = NULL, " +
"NationalRegistrationCoAddress = NULL, " +
"NationalRegistrationDistributionAddress1 = NULL, " +
"NationalRegistrationDistributionAddress2 = NULL, " +
"UnregistrationDate = NULL, " +
"NationalRegistrationPostCode = NULL, " +
"NationalRegistrationCity = NULL, " +
"BirthCountyCode = NULL, " +
"BirthParish = NULL, " +
"CitizenshipCode = NULL, " +
//"CitizenshipDate = @CitizenshipDate, " +
"NationalRegistrationDate = NULL, " +
"ForeignDistrubtionAddress1 = NULL, " +
"ForeignDistrubtionAddress2 = NULL, " +
"ForeignDistrubtionAddress3 = NULL, " +
"UnregistrationReason = NULL, " +
"ForeignBirthCity = NULL, " +
"LastChangedBy = @LastChangedBy, " +
"GivenNameNumber = NULL, " +
"LastChangedDate = @LastChangedDate WHERE PersonalIdentityNumber = @PersonalIdentityNumber";
command1 = new SqlCommand(query, connection);
command1.Parameters.Clear();
return command1;
}
if ((!string.IsNullOrEmpty(s)) && !string.IsNullOrEmpty(t))
{
query += ", UnregistrationReason = @UnregistrationReason";
query += ", GivenNameNumber = @GivenNameNumber ";
command1 = new SqlCommand(query, connection);
command1.Parameters.AddWithValue("@UnregistrationReason", s ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@GivenNameNumber", t ?? DBNull.Value.ToString());
}
else if (!string.IsNullOrEmpty(s) && string.IsNullOrEmpty(t))
{
query += ", UnregistrationReason = @UnregistrationReason, GivenNameNumber = @GivenNameNumber WHERE PersonalIdentityNumber = @PersonalIdentityNumber";
command1 = new SqlCommand(query, connection);
t = "00";
command1.Parameters.AddWithValue("@UnregistrationReason", s ?? DBNull.Value.ToString());
command1.Parameters.AddWithValue("@GivenNameNumber", t ?? DBNull.Value.ToString());
}
else if (string.IsNullOrEmpty(s) && !string.IsNullOrEmpty(t))
{
query += ", GivenNameNumber = @GivenNameNumber WHERE PersonalIdentityNumber = @PersonalIdentityNumber";
command1 = new SqlCommand(query, connection);
command1.Parameters.AddWithValue("@GivenNameNumber", t ?? DBNull.Value.ToString());
}
else
{
query += ", GivenNameNumber = @GivenNameNumber WHERE PersonalIdentityNumber = @PersonalIdentityNumber";
t = "00";
command1 = new SqlCommand(query, connection);
command1.Parameters.AddWithValue("@GivenNameNumber", t ?? DBNull.Value.ToString());
return command1;
}
return command1;
}
catch(Exception e)
{
throw;
}
}
Там это слишком много кода. Можете ли вы сузить его, пожалуйста? –
@PatrickHofman Done –
Почему вы комментируете '//command1.Parameters.AddWithValue (« @ NationalRegistrationDate »'? –