c# - 向表中添加多个值

标签 c# database visual-studio-2008

我需要将多个值添加到一个表中,这些值取自其他表或使用其他表计算。我正在使用如下所示的代码。请告诉我们如何计算从其他表中获取的值。我需要从表 transac(tid、sciptname、accnum、transactype、Quantity、date) 插入表 sales(scriptname、accnum、sharesbought、sharessold、remshares)。根据transac类型我需要判断是sharebought还是sharessold,remainingshare是sharebought-sharesold;

我正在使用 .Net 来执行此操作,请告诉我我使用的代码是否正确。

    SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
                Con.Open();
                string insertsale = "INSERT INTO sales s (accnum, scriptname, shares_bought,sharessold,rem_shares) select case when t.transactype == 'sell' then s.accnum = t.accnum, s.scriptname = t.scriptname. s.shares_bought = 0,s.shares_sold=t.quanity, (s.shares_bought-s.shares_sold) as s.rem_shares 
else
 s.accnum = t.accnum, s.scriptname = t.scriptname. s.shares_bought = t.quanity,s.shares_sold=0, (s.shares_bought-s.shares_sold) as s.rem_shares from transac t";
                SqlCommand cmd = new SqlCommand(insertsale, Con);
                cmd.ExecuteNonQuery();
                Con.Close();

最佳答案

您发布的 INSERT 声明是错误和奇怪的。您可以在如下所示的单个 SQL 查询中执行此操作。如果需要进行任何更改,您可以按照该行相应地修改给定的查询。

INSERT INTO sales(accnum, scriptname, shares_bought,sharessold,rem_shares) 
select accnum, scriptname,
case when transactype = 'sell' then 0 else quanity end as shares_bought, 
case when transactype <> 'sell' then quanity else 0 end as sharessold,
case when transactype = 'sell' then (0 - quanity) else (quanity - 0) end as rem_shares
from transac;

关于c# - 向表中添加多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32550605/

相关文章:

c# - 使用 Open XML SDK 2.0 或 Linq 在 Word 2010 中删除自定义属性的内容

java - SQLiteDatabase 仅在不存在时才添加

android - 如何获取 ListView 的选定索引或位置并传递到新的 Activity 中?

visual-studio - 当我不选择文本时 Visual Studio 突出显示

c# - Azure表存储(分区键行键),如何插入对应于相同分区和不同rowKey的多个实体?

c# - ReportViewer 在 GetDefaultPageSettings() 上锁定了很长一段时间

c# - 为什么存储过程输出参数没有被 Entity Framework 的 ExecuteSqlCommand 方法读取?

android - 如何从android中的sqlite数据库中检索数据并将其显示在TextView中

c - 如何部署由 Visual C++ 2008 Express 编译的 C exe?

asp.net - 我必须将 CausesValidation ="False"添加到每个 ASP 按钮才能工作,为什么?