Используя String Builder, мне нужно проверить, находится ли текст в трех полях в моем приложении уже в 3 соответствующих столбцах в моей таблице базы данных, прежде чем вставлять какие-либо из них.Как объявить параметр count, а затем проверить его перед вставкой данных в StringBuilder
Сначала я поместил текст из трех полей в свойства объекта, называемые LastName, StreetAddress и ZipCode. Затем я создал свои параметры. курица я сделал это:
var sb = new StringBuilder();
sb.Append("DECLARE @countLastName INT;");
sb.Append("DECLARE @countStreetAddress INT;");
sb.Append("DECLARE @countZipCode INT;");
sb.Append("SELECT @countLastName = COUNT (*) FROM tblCustomer WHERE LastName = @LastName;");
sb.Append("SELECT @countStreetAddress = COUNT (*) FROM tblCustomer WHERE StreetAddress = @StreetAddress;");
sb.Append("SELECT @countZipCode = COUNT (*) FROM tblCustomer WHERE ZipCode = @ZipCode;");
if (@countLastName < 1 || @countStreetAddress < 1 || @countZipCode < 1)
{
sb.Append("INSERT INTO tblCustomer (");
sb.Append("LastName, ");
sb.Append("StreetAddress, ");
sb.Append("ZipCode) ");
sb.Append("VALUES (@LastName, @StreetAddress, @ZipCode) ");
}
else
{
[Code that results in 1 of 3 messages being displayed to user based on which field is already in database. IE "LastName already exists"]
}
reader.CommandText = sb + "";
}
reader.Execute();
Я назначил струнный Builder моему reader.CommandText, затем сделал reader.Execute() ;, как я сделал для всех моих хитов базы данных.
Visual Studio не нравится, что я помещаю переменные @count в свой оператор IF. У каждого из них есть красные криволинейные линии.
Как я могу проверить с помощью String Builder, что мои переменные счетчика меньше 1, прежде чем вставлять мои значения?
Спасибо!
Строка Builder не извлекает данные из базы данных, так что нет никакого способа для Вас, чтобы сделать это таким образом. Все, что вы здесь делаете, это создать строку с этими операторами sql. Мне кажется, что вы не изучили, как выбирать данные из базы данных на C#. Вы должны это сделать, а затем вернуться, когда у вас есть лучшее представление о том, что вы пытаетесь сделать. –
См. [Этот вопрос и ответ] (http://stackoverflow.com/questions/14171794/retrieve-data-from-a -sql-server-database-in-c-sharp), чтобы получить представление о том, как получить данные с сервера sql в C# –
Мои извинения. Я не сказал, что тогда я ввел свою строку в reader.CommandText, а затем сделал reader.Execute(), так же, как и для всех моих методов доступа к базе данных, которые отлично работают. Я действительно думал, что это просто вопрос о том, как объявить параметр в StringBuilder, а затем проверить его перед вставкой, если я могу это сделать вообще. Это вам поможет? – user2980343