如何在表中插入更新和删除记录

时间:2013-07-06 04:44:40

标签: sql-server vb.net

我有一个带有50个不同字段的大型窗体(文本框,组合框,列表视图,复选框)我在sql server数据库中有10个表每个表都有不同的列我想在这10个窗口中插入我的窗体50个字段表。这是我在表中插入记录的代码

  Dim cmd As New SqlCommand
  cmd.Connection = conn
  cmd.CommandText = "Insert Into ChartOfAccount (MainCode,MainDescription,AccountCode,AccountDescription,OpeningBalance) values ('" & MainCode & "','" & MainDescription & "','" & AccountCode & "','" & AccountDescription & "','" & OpeningBalance & "')"
  cmd.ExecuteNonQuery()

所以问题是如果我将数据插入10个不同的表中,那么我需要编写10个插入语句。

如果我更新或删除记录,我需要分别编写更新和删除命令10个表 这需要很长时间,如果有任何简短的方法,请指导我。

2 个答案:

答案 0 :(得分:1)

您可以为其创建存储过程。要创建存储过程,可以使用以下SQL查询:

Create procedure [dbo].[NewUser] 
@Yourparameter1 int , 
@Yourparamtere2
As
Insert into dbo.Users 
( 
 // Db columns 
 Column1 , 
 Column2 
) 
values 
( 
@Yourparameter1
@Yourparameter2
) 

在您的C#代码中,创建一个SQLParameter集合并将其传递给该过程。它可以很好地工作,这样你的代码就会更简单。

答案 1 :(得分:1)

您的查询易受SQL注入影响,因此最好使用参数:

        Dim connStr as String = "connection string values here";
        using con as new SqlConnection(connStr)

              Dim commandText as String = 
                 @"Insert Into ChartOfAccount (MainCode
                 ,MainDescription,AccountCode
                 ,AccountDescription,OpeningBalance) 
               VALUES 
               (@MainCode, @MainDesc,@AccountCode
               ,@AccountDesc,@OpeningBalance)"
              Dim cmd as New SqlCommand(commandText,con)
                cmd.Parameters.AddWithValue("@MainCode",MainCode)
                cmd.Parameters.AddWithValue("@MainDesc",MainDescription)
                cmd.Parameters.AddWithValue("@AccountCode",AccountCode)
                cmd.Parameters.AddWithValue("@AccountDesc",AccountDescription)
                cmd.Parameters.AddWithValue("@OpeningBalance",OpeningBalance)

            Try
                con.Open()
                cmd.ExecuteNonQuery()
            Catch ex as Exception
                MessageBox.Show(ex.Message) 
            End Try
        End Using

现在,这仅适用于插入记录示例。