C#,SQL:为不同表插入服务的一个函数

C#,SQL:为不同表插入服务的一个函数,c#,sql,function,insert,C#,Sql,Function,Insert,首先也是最重要的一点:20年前我曾开发过软件——决定再次“弄脏”我的手。所以请,漂亮的请,不要使用太专业的语言。:) 我正在做一些数据库来存储大量的聊天,多个表。 我对C#有点熟悉,但我对SQL编码的了解主要是从web上复制粘贴,然后进行调整。 我的目标是构建一个C#函数,我可以在将数据插入任何表时使用它。为此,请: 函数(字符串表、字符串[]字段、对象[]值) 所以。。。这就是我想到的。我会一直测试和适应。 但是如果能有一些意见就好了。如果我完全走错了路,那么我最好在第100次将头撞到错误上之

首先也是最重要的一点:20年前我曾开发过软件——决定再次“弄脏”我的手。所以请,漂亮的请,不要使用太专业的语言。:)

我正在做一些数据库来存储大量的聊天,多个表。 我对C#有点熟悉,但我对SQL编码的了解主要是从web上复制粘贴,然后进行调整。 我的目标是构建一个C#函数,我可以在将数据插入任何表时使用它。为此,请: 函数(字符串表、字符串[]字段、对象[]值)

所以。。。这就是我想到的。我会一直测试和适应。 但是如果能有一些意见就好了。如果我完全走错了路,那么我最好在第100次将头撞到错误上之前放弃

    public static int InsertIntoTable(string table, List<string> fields, List<object> values)
    {
        if (fields.Count != values.Count)
            return -99;

        string query = "INSERT INTO " + table;

        query += " (";
        foreach (string field in fields)
            query += "[" + field + "],";
        query = query.Remove(query.Length - 1, 1); query += ")";

        query += " VALUES (";
        foreach (string field in fields)
            query += "@" + field + ",";
        query = query.Remove(query.Length - 1, 1); query += ")";

        SqlConnection connection = new SqlConnection(_sqlConnectionString);
        SqlCommand command = new SqlCommand(query, connection);

        for (int i = 0; i < fields.Count; i++)
            command.Parameters.Add(new SqlParameter(fields[i], values[i]));

        if(command.ExecuteNonQuery() != 1)
            new Exception("SQL INSERT command inserted not 1 row");

        int key = (int)command.ExecuteScalar();

        command.Dispose();
        connection.Close();

        return key;
    }
publicstatic int InsertIntoTable(字符串表、列表字段、列表值)
{
if(fields.Count!=values.Count)
返回-99;
string query=“插入”+表格;
查询+=“(”;
foreach(字段中的字符串字段)
查询+=“[”+字段+“],”;
query=query.Remove(query.Length-1,1);query+=”;
查询+=“值(”;
foreach(字段中的字符串字段)
查询+=“@”+字段+”,“;
query=query.Remove(query.Length-1,1);query+=”;
SqlConnection=newsqlconnection(_sqlConnectionString);
SqlCommand=newsqlcommand(查询、连接);
for(int i=0;i
必须强烈建议不要这样做。很久以前,构建这样的查询被认为是一个坏主意。现在,我们将查询(或)参数化。此方法过于信任其输入。为了缓解这种情况,它将很快成为某种“上帝功能”。你想用ORM做的更好。所有这些工作都已经为您完成,并经过了广泛的测试。我确实理解,它是开放的,可以推动任何进入它。我以前看过这部动画片,我就想到了。我会看看那个ORM的东西。。。我应该坚持政治研究,把这件事外包出去谢谢。我必须强烈反对这种做法。很久以前,构建这样的查询被认为是一个坏主意。现在,我们将查询(或)参数化。此方法过于信任其输入。为了缓解这种情况,它将很快成为某种“上帝功能”。你想用ORM做的更好。所有这些工作都已经为您完成,并经过了广泛的测试。我确实理解,它是开放的,可以推动任何进入它。我以前看过这部动画片,我就想到了。我会看看那个ORM的东西。。。我应该坚持政治研究,把这件事外包出去谢谢