C#: имя столбца или количество предоставленных значений не соответствует определению таблицы.
Привет ,
То, что я пытаюсь сделать, - это загрузить данные из XML-файла в базу данных sql.
Мой XML-файл выглядит так.
<?xml version="1.0" encoding="utf-8"?> <Table> <Product> <Product_id>1</Product_id> <Product_name>Product 1</Product_name> <Product_price>1000</Product_price> </Product> ....
Имена столбцов моей базы данных-Id[int], ProductName[nvarchar50], ProductDescription[nvarchar4000] и ряд других столбцов.
Ошибка, которую я получаю
Column name or number of supplied values does not match table definition.
Что я уже пробовал:
private void button3_Click(object sender, EventArgs e) { string connetionString = null; SqlConnection connection; SqlCommand command; SqlDataAdapter adpter = new SqlDataAdapter(); DataSet ds = new DataSet(); XmlReader xmlFile; string sql = null; int product_ID = 0; string Product_Name = null; string product_Price = null; connetionString = "Data Source=server name;Initial Catalog=database;User ID=user;Password=password"; connection = new SqlConnection(connetionString); xmlFile = XmlReader.Create("Product.xml", new XmlReaderSettings()); ds.ReadXml(xmlFile); int i = 0; connection.Open(); for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) { product_ID = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[0]); Product_Name = ds.Tables[0].Rows[i].ItemArray[1].ToString(); product_Price = ds.Tables[0].Rows[i].ItemArray[2].ToString(); //Convert.ToDouble(ds.Tables[0].Rows[i].ItemArray[2]); sql = "insert into Product values(" + product_ID + ",'" + Product_Name + "'," + product_Price + ")"; command = new SqlCommand(sql, connection); adpter.InsertCommand = command; adpter.InsertCommand.ExecuteNonQuery(); } connection.Close(); MessageBox.Show("Done .. "); } }