GrpSMK Ответов: 1

Массовая вставка SQL-запроса для XML-файла


как массово вставлять XML-данные из XML-файла без повторения инструкции insert into, здесь я использую для каждого цикла.. как вставить все данные из XML-файла в SQL с помощью одного выполнения.

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

<pre lang="c#">  protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"user id=sa;password=ssa;database=Mohan;data source=PCTH101\PCTH101");
            con.Open();
            XmlDocument doc = new XmlDocument();
            doc.Load("d:/mohan/CHG_829_RPT_XML_PRD_SPEC_FINAL_2015-08-17-0908.xml");
            XmlNodeList nodes = doc.DocumentElement.SelectNodes("/fsxml/report/object/FSFORMULADOC");
            string docid = "", funcode = "" ,description = "" ,formulacode = "",funlabel = "";
            foreach (XmlNode node in nodes)
            {
                docid = node.SelectSingleNode("DOC_ID").InnerText;
                funcode = node.SelectSingleNode("FUNCTION_CODE").InnerText;
                description = node.SelectSingleNode("DOC_DESCRIPTION").InnerText;
                formulacode = node.SelectSingleNode("FORMULA_CODE").InnerText;
                funlabel = node.SelectSingleNode("FUNCTION_CODE_LABEL").InnerText;
                SqlCommand cmd = new SqlCommand("Insert  INTO xml1(docid,funcode,description,formulacode,funlabel) values(@docid, @funcode,@description,@formulacode,@funlabel)", con);
                cmd.Parameters.AddWithValue("@docid", docid);
                cmd.Parameters.AddWithValue("@funcode", funcode);
                cmd.Parameters.AddWithValue("@description", description);
                cmd.Parameters.AddWithValue("@formulacode", formulacode);
                cmd.Parameters.AddWithValue("@funlabel", funlabel);

                cmd.ExecuteNonQuery();
                Label1.Text = "Uploaded Successfully,Check database for Inserted Data's";
                Label1.Visible = true;


            }

Tomas Takac

Для того, чтобы использовать SqlBulkCopy нужно обернуть в xml в качестве объекта IDataReader. Насколько мне известно, есть не что иное, как XmlDataReader в рамках. Вам нужно будет написать самостоятельно или использовать сторонний компонент.

1 Ответов

Рейтинг:
1

Member 12966779

Привет,

Вам специально нужно кодировать его самостоятельно? Для этого быстро и многократно можно легко использовать инструмент под названием Linx 5 без необходимости кодировать. Вы можете прочитать XML в инструмент и получить всю структуру данных, которую затем можно записать в любую базу данных, которую вы хотите (SQL, MySQL, Oracle и т. д.).

Вы можете проверить это по адресу Linx 5-Добро Пожаловать[^]