Проверьте измененное значение столбца SQL в C# - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть 2 столбца в SQL Таблица базы данных сервера, подобная этой

enter image description here

А затем, Scrap Xml Данные API по указанной ссылке, значение столбца цены будет обновлено текущее Xml значение узла цены

Пример кода ниже

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Xml;

namespace DWinform
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ToSqlServer(Parser());
        }

        public List<SomeData> Parser()
        {
            var list = new List<SomeData>();
            var xml = new XmlDocument();
            xml.Load("http://www.zentrade.co.kr/shop/proc/product_api.php?&id=test&m_skey=test");

            foreach (XmlNode node in xml.DocumentElement)
            {
                var sd = new SomeData();

                if (node.Name == "product")
                {
                    sd.Code = node.Attributes["code"].Value;

                    foreach (XmlNode item in node)
                    {
                        if (item.Name =="price")
                        {
                            sd.Price = int.Parse(item.Attributes["buyprice"].Value);
                        }
                    }
                }
                list.Add(sd);
            }
            return list;
        }

        public void ToSqlServer(List<SomeData> some)
        {
            SqlConnection conn;
            SqlCommand cmd;
            string strConn = "dataAdress";
            using (conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (cmd = new SqlCommand())
                {
                    cmd.Connection = conn;
                    cmd.CommandText = $"UPDATE dbo.TableName SET price=@price WHERE code=@code";
                    foreach (var item in some)
                    {
                        cmd.Parameters.AddWithValue("@code", item.Code);
                        cmd.Parameters.AddWithValue("@price", item.Price);
                    }
                }
            }
        }
    }
    public class SomeData
    {
        public string Code { get; set; }
        public int Price { get; set; }
    }
}

При нажатии кнопки 1 обновится sql после получения данных узла от xml ссылка на сайт. В ссылке xml узел цен может меняться ежедневно. Когда кнопка нажата, в этот момент, если xml цена узла отличается от предыдущей цены узла, я хочу записать в текстовое поле, и какая цена кода изменяется. (пример: захват образца ниже) enter image description here Я попробовал триггер СУБД и метод SqlDataAdapter.RowUpdated(). Тем не менее, он только информирует об изменении, а не информацию об измененном значении. Я был бы очень признателен, если бы кто-нибудь дал мне некоторую информацию для решения проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...