Saaharjit Singh Ответов: 1

Строковый символ удаляется, когда я сохраняю его в базе данных через свое веб-приложение


У меня есть этот код

con.ConnectionString = "Data Source=aaaa;Initial Catalog=aaa;User ID=aaa;Password=aaa";
                con.Open();
                SqlCommand cmd = new SqlCommand("exec doc_record @PO_NUMBER, @Path,@Time_Saved, @Scanned_BY", con);
                // cmd.Parameters.AddWithValue("@PO_NUMBER", Label4.Text);
                cmd.Parameters.Add("@PO_NUMBER", SqlDbType.VarChar, 250).Value = Label4.Text;
                cmd.Parameters.Add("@Path", SqlDbType.NVarChar).Value = NewFileName;
                cmd.Parameters.Add("@Time_Saved", SqlDbType.NVarChar).Value = "";
                cmd.Parameters.Add("@Scanned_BY", SqlDbType.NVarChar).Value = Environment.UserName;
                cmd.ExecuteNonQuery();
                con.Close();
                confirm();


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

Существует текстовое поле для сохранения номера PO. Поэтому, когда я ввожу этот номер PO в текстовое поле "645-5263038-O9-SMIPLX" и нажимаю сохранить. Буква " X "каждый раз обрезается, и она сохраняется как" 645-5263038-O9-SMIPL", но если я введу ее вручную в базу данных, то теперь возникнет проблема. Раньше длина поля была установлена в Varchar (20), но теперь я превысил ее до Varchar(100), но все еще есть проблема.

[no name]

Посмотрите на doc_record и посмотрите, что он делает.

Saaharjit Singh

Спасибо! :)

jgakenhe

Да, размер параметра в вашей хранимой процедуре @PO_NUMBER, вероятно, неправильный размер. Если столбец был недостаточно большим, то вы получите исключение типа: "строковые или двоичные данные будут усечены. Заявление было прекращено."

Saaharjit Singh

Спасибо:)

ZurdoDev

Идите вперед и опубликуйте это как решение.

ZurdoDev

Параметр в вашей хранимой процедуре также должен быть увеличен.

Saaharjit Singh

Спасибо :)

1 Ответов

Рейтинг:
2

jgakenhe

Да, размер параметра в вашей хранимой процедуре @PO_NUMBER, вероятно, неправильный размер; его нужно будет увеличить по крайней мере, до размера текстового поля или максимального размера данных, которые вы передаете. Если столбец был недостаточно большим, то вы получите исключение типа: "строковые или двоичные данные будут усечены. Заявление было прекращено."


Karthik_Mahalingam

5

jgakenhe

Спасибо! Печально то, что я нахожусь в отпуске, но я начинаю переходить обратно в рабочий режим; поэтому я решил немного повозиться с CP сегодня вечером.

Karthik_Mahalingam

:)