C# 如何在sql server中将数据插入到自引用表中?

C# 如何在sql server中将数据插入到自引用表中?,c#,sql,.net,sql-server,C#,Sql,.net,Sql Server,将数据插入自引用表的查询是什么。我的表有4列:SlNo、Name、ParentId、CurrentBanlance 我尝试了这个SQL查询,但它没有执行,还有其他方法吗 INSERT INTO Ptr_AcntInfo SELECT '" + txtAcName.Text + "', (SELECT [SlNo] FROM Ptr_AcntInfo WHERE [Ac_Nm] = '" + cbxAcntGrpName.Text + "'),"+0.00+"

将数据插入自引用表的查询是什么。我的表有4列:SlNo、Name、ParentId、CurrentBanlance

我尝试了这个SQL查询,但它没有执行,还有其他方法吗

INSERT INTO Ptr_AcntInfo 
   SELECT 
       '" + txtAcName.Text + "',
       (SELECT [SlNo] FROM Ptr_AcntInfo WHERE [Ac_Nm] = '" + cbxAcntGrpName.Text + "'),"+0.00+""
在这个查询中,我得到以下错误

子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时


查询应该如下所示:

"INSERT INTO PTR_ACNTINFO (COL1, COL2)
(SELECT " + txtAcName.Text + ", SINo FROM
PTR_ACNTINFO
WHERE [Ac_Nm]='" + cbxAcntGrpName.Text + "')"
注意:此查询易受SQL注入攻击

您应该使用参数化查询或存储过程

例如:


您从Ptr_Actinfo中选择[SlNo],其中[Ac_Nm]='+cbxAcntGrpName.Text+'查询将始终返回一个SlNo?它在关键字“select”附近显示错误,如语法不正确。附近的语法不正确。如果您想对问题进行更改,您应该编辑现有问题,而不是发布新问题。感谢您的回复,但它在关键字“选择”附近显示错误为语法不正确。@NareshJ我已更新我的帖子。用列名替换COL1和COL2。
SQLCommand sqlCommand = new SQLCommand(connection); 
sqlCommand.CommandText =  "INSERT INTO PTR_ACNTINFO (SELECT $name, SINo FROM
                           PTR_ACNTINFO WHERE [Ac_Nm]='$accNo')"

sqlCommand.Parameters.AddWithValue("$name", txtAcName.Text);
sqlCommand.Parameters.AddWithValue("$accNo", cbxAcntGrpName.Text);