簡體   English   中英

從DataTable插入Sql Server數據庫

[英]From DataTable Insert into Sql Server Database

我正在從XML文件加載數據並填充DataTable 然后,我使用存儲過程將該數據插入SQL Server。

我正在使用此代碼,但保存到數據庫時不起作用:

private void button1_Click(object sender, EventArgs e)
{
        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(@"D:\DBXML.xml");

        XmlElement root = xmldoc.DocumentElement;
        XmlNodeList nodes = root.SelectNodes("/students/student");

        DataTable dt = new DataTable();
        dt.Columns.Add("Nama", typeof(string));
        dt.Columns.Add("Alamat", typeof(string));

        foreach (XmlNode item in nodes)
        {
            DataRow dr = dt.NewRow();
            dr[0] = item["name"].InnerText;
            dr[1] = item["address"].InnerText;
            dt.Rows.Add(dr);

            dataGridView1.DataSource = dt;

            using (var cmd = new SqlCommand("InsertSiswa") { CommandType = CommandType.StoredProcedure })
            {
                //DataTable dt = new DataTable();
                cmd.Parameters.Add(new SqlParameter("@MyDataTable", dt));
                cmd.ExecuteNonQuery();
                MessageBox.Show("Sukses");
            }

您可以在SQL Server中使用uder-defined-table-type將數據表以更平滑的方式插入SQL Server。

創建用戶定義表類型的示例

在過程示例中使用用戶定義的表類型

是的,現在已經解決了,此代碼可以正常工作:

 SqlConnection koneksi = null;
        koneksi = new SqlConnection(conn);
        koneksi.Open();

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(@"D:\DBXML.xml");
        XmlElement root = xmldoc.DocumentElement;
        XmlNodeList nodes = root.SelectNodes("/students/student");
        DataTable dt = new DataTable();
        dt.Columns.Add("Nama", typeof(string));
        dt.Columns.Add("Alamat", typeof(string));
        foreach (XmlNode item in nodes)
        {
            DataRow dr = dt.NewRow();
            dr[0] = item["name"].InnerText;
            dr[1] = item["address"].InnerText;
            dt.Rows.Add(dr);
            dataGridView1.DataSource = dt;



        }
        //senddtata();
        string dtout = dt.Rows[2][1].ToString();

        SqlCommand cmd = new SqlCommand("InsertSiswa",koneksi);
        cmd.CommandType = CommandType.StoredProcedure;
        {
            //DataTable dt = new DataTable();
            cmd.Parameters.Add(new SqlParameter("@mytable", dt));
            cmd.ExecuteNonQuery();
            MessageBox.Show("Sukses");

        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM