The*_*kZn 10 c# sql-server asp.net
首先,我不能使用任何存储过程或视图.
我知道这可能会适得其反,但那些不是我的规则.
我有一个DataTable,充满了数据.它具有我的SQL表的复制结构.
ID - NAME  
SQL表当前有一些数据,但我现在需要用我的所有数据更新它DataTable.如果ID匹配,它需要更新SQl表,或者添加到它唯一的列表中.
有没有办法只在我的WinForm应用程序中执行此操作?
到目前为止,我有:
SqlConnection sqlConn = new SqlConnection(ConnectionString);
            SqlDataAdapter adapter = new SqlDataAdapter(string.Format("SELECT * FROM {0}", cmboTableOne.SelectedItem), sqlConn);
            using (new SqlCommandBuilder(adapter))
            {
                try
                {
                    adapter.Fill(DtPrimary);
                    sqlConn.Open();
                    adapter.Update(DtPrimary);
                    sqlConn.Close();
                }
                catch (Exception es)
                {
                    MessageBox.Show(es.Message, @"SQL Connection", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
数据表:
        DataTable dtPrimary = new DataTable();
        dtPrimary.Columns.Add("pv_id");
        dtPrimary.Columns.Add("pv_name");
        foreach (KeyValuePair<int, string> valuePair in primaryList)
        {
            DataRow dataRow = dtPrimary.NewRow();
            dataRow["pv_id"] = valuePair.Key;
            dataRow["pv_name"] = valuePair.Value;
            dtPrimary.Rows.Add(dataRow);
SQL:
CREATE TABLE [dbo].[ice_provinces](
    [pv_id] [int] IDENTITY(1,1) NOT NULL,
    [pv_name] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_ice_provinces] PRIMARY KEY CLUSTERED 
(
    [pv_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
由于您要更新现有值并从包含所有数据的数据表中插入新值,因此我认为以下方法可能最适合您:
SqlBulcCopy方法将数据从 ADO.NET 表批量插入到 SQL 表。不涉及视图或存储过程,只有纯 TSQL 和 .NET 代码。
| 归档时间: | 
 | 
| 查看次数: | 24518 次 | 
| 最近记录: |