c# - 如何仅更新表的 2 列并另存为新记录?
问题描述
假设我有 SQL 数据库表作为客户,并且(它有主键 ID)表的列类似于 VisitDate、Company、CompanyRepresentative、City、Phone、E-mail、VisitNotes、Stuation(Lost、Signed 等)、VisitTime(1- 2-3..)
我只想更新 VisitNotes 和 Stuation 列并将记录另存为新行。所以它应该给我其他字段相同但 VisitNotes 和 Stuation 改变了。
请看下文;
enter` if (!string.IsNullOrEmpty(Session["ID"].ToString()))
{
SqlCommand cmdUpdate = new SqlCommand("UPDATE Customer_list SET Company=@Company,VisitDate=@VisitDate,Stuation=@Stuation,VisitNotes=@VisitNotes,City=@City,Phone=@Phone,Email=@Email,VisitTime=@VisitTime, WHERE ID='" + Session["ID"].ToString() + "'", connBizim);
cmdUpdate.Parameters.AddWithValue("@VisitDate", Convert.ToDateTime(txtDate.Text));
cmdUpdate.Parameters.AddWithValue("@Company", txtCompany.Text);
cmdUpdate.Parameters.AddWithValue("@Phone", txtPhone.Text);
cmdUpdate.Parameters.AddWithValue("@Stuation", DpStuation.Text);
cmdUpdate.Parameters.AddWithValue("@EMAIL", txtEmail.Text);
cmdUpdate.Parameters.AddWithValue("@VisitNotes", txtVisitNotes.Text);
cmdUpdate.Parameters.AddWithValue("@City", txtCity.Text);
cmdUpdate.Parameters.AddWithValue("@VisitTime", Convert.ToInt32(txtVisitTime.Text) + 1);
conn.Open();
cmdUpdate.ExecuteNonQuery();
conn.Close();
Session["ID"] = "";
}
else
{
SqlCommand cmdinsert = new SqlCommand("INSERT INTO Customer_list SET Company=@Company,VisitDate=@VisitDate,Stuation=@Stuation,VisitNotes=@VisitNotes,City=@City,Phone=@Phone,Email=@Email,VisitTime=@VisitTime, WHERE ID='" + Session["ID"].ToString() + "'", connBizim);
cmdinsert.Parameters.AddWithValue("@VisitDate", Convert.ToDateTime(txtDate.Text));
cmdinsert.Parameters.AddWithValue("@Company", txtCompany.Text);
cmdinsert.Parameters.AddWithValue("@Phone", txtPhone.Text);
cmdinsert.Parameters.AddWithValue("@Stuation", DpStuation.Text);
cmdinsert.Parameters.AddWithValue("@EMAIL", txtEmail.Text);
cmdinsert.Parameters.AddWithValue("@VisitNotes", txtVisitNotes.Text);
cmdinsert.Parameters.AddWithValue("@City", txtCity.Text);
cmdinsert.Parameters.AddWithValue("@VisitTime", Convert.ToInt32(txtVisitTime.Text));
conn.Open();
cmdinsert.ExecuteNonQuery();
conn.Close();
Session["ID"] = "";
Response.Redirect("Customer_List.aspx");
}`
解决方案
你可以用INSERT INTO SELECT
.
我为你准备了一个小演示。这不是你的例子,但它会帮助你了解如何。您现在需要根据您的具体示例对其进行调整。
对于表:
create table Customer (ID int, name varchar(10), VisitNotes int, Stuation int)
就像:
insert into Customer
select distinct id, name, 5, 6
from customer
where id = 1;
推荐阅读
- webdriver-io - Webdriver.io:capabilities 和desiredCapabilities 关键字有什么区别?
- python-2.7 - Sublime text 2 找不到任何python模块
- android - 将图像、视频上传和下载到 Android 应用程序的 Firebase 存储太慢
- reactjs - React Router:返回特定页面
- boost - 如何一次更新提升符号链接?
- javascript - 如何防止 Vue 引导表在页面缩放时变形/调整大小?
- java - 如何测试从数据库读取并写入文件的弹簧批处理步骤?
- android - 我怎样才能复制这种行为?
- python-3.x - InvalidArgumentError 带有 keras 的情绪分析器
- python - 为什么加载到 numpy 时磁盘上大小为 9 MB 的图像在 RAM 中占用 125 MB?