Есть таблица с данными, хочу туда добавить новую строку. Но дословно возникает такая ошибка.
System.Data.SqlClient.SqlException: "Conversion failed when converting the varchar value '???????? ?????? ' to data type smallint."
Данные берутся из текстового массива и записываются в таблицу в базе данных. Сама таблица выглядит так.
CREATE TABLE [dbo].[METHODNAME] (
[METHODID] SMALLINT NOT NULL,
[DESCRIPTION] NVARCHAR (250) NULL,
[TEXTDESCRIPTION] NVARCHAR (250) NULL,
[METHODTYPEID] TINYINT NULL,
CONSTRAINT [PK_METHODNAME] PRIMARY KEY CLUSTERED ([METHODID] ASC),
CONSTRAINT [FK_METHODNAME_METHODTYPEID] FOREIGN KEY ([METHODTYPEID]) REFERENCES [dbo].[METHODTYPES] ([METHODTYPEID]) NOT FOR REPLICATION
);
GO
CREATE NONCLUSTERED INDEX [iMETHODTYPEID_METHODNAME]
ON [dbo].[METHODNAME]([METHODTYPEID] ASC);
Вот так в программе я это делаю.
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string connextionstring ="Integrated Security=SSPI;Pooling=false;Data Source=(localdb)\\mssqllocaldb;Initial Catalog=Solution21";
string[] words = new[] {"1058", "ПНД Ф 12.16.1", "ПНД Ф 12.16.1", ""};
using (SqlConnection connection = new SqlConnection(connextionstring))
{
connection.Open();
var a = Int16.Parse(words[0]);
var b = words[1];
var с = words[2];
// var d = words[3];
SqlCommand command19 = new SqlCommand("INSERT INTO METHODNAME ( METHODID , DESCRIPTION, TEXTDESCRIPTION) VALUES (@a, @b,@c)",
connection);
command19.Parameters.AddWithValue("@a", a);
command19.Parameters.AddWithValue("@b", b);
command19.Parameters.AddWithValue("@c", с);
// command19.Parameters.AddWithValue("@d", d);
command19.ExecuteNonQuery();
}
Console.ReadKey();
}
}
}
Вопрос как избавиться от этой ошибки? Пробовал команду писать так.
command19.Parameters.Add("@a",SqlDbType.SmallInt);
command19.Parameters["@a"].Value = a;
command19.Parameters.Add("@b", SqlDbType.NVarChar,250);
command19.Parameters["@b"].Value = b;
command19.Parameters.Add("@c", SqlDbType.NVarChar,250);
command19.Parameters["@c"].Value = с;
static void InsertMethodName(String connectionString, String[] values)
{
using (var connection = new SqlConnection(connectionString))
{
using (var command = connection.CreateCommand())
{
command.CommandText = @"INSERT INTO METHODNAME(METHODID, DESCRIPTION, TEXTDESCRIPTION) VALUES(@a, @b, @c)";
command.Parameters.AddWithValue("@a", Int16.Parse(values[0]));
command.Parameters.AddWithValue("@b", values[1]);
command.Parameters.AddWithValue("@c", values[2]);
connection.Open();
command.ExecuteNonQuery();
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При запуске приложения, срабатывает апдейтерПодключение идет через WebClient
Есть некое приложение, приложение выводит список документов, и должно уметь показывать прикрепленные сканы оригиналов документовПопытался...
Я делаю игру, в которой шарик должен лететь к повёрнутой платформе и отталкиваться от её поверхностиУ меня есть код в методе Update, который...