在 C# 中逐行向 PostgreSQL 插入新记录

Insert NEW RECORD to PostgreSQL Line by Line in C#

美好的一天!

我是 C#.NET 的新手(我来自 VB6)。

我想使用 PostgreQL向我的数据库插入 新记录。

我可以使用一行代码,例如:

Insert into table1 values("value1","value2","value3");

但我想逐行插入新记录,如:

rs.open("Select * from table1",con,AdOpenDynamic, AdLockOptimistic)
rs.Fields("Field1").value = value1    
rs.Fields("Field2").value = value2    
rs.Fields("Field3").value = value3    
rs.Update

再说一次,我是这里的新手。同样,我可以使用单个 INSERT 语句进行插入。

但是IF我有40个字段,代码很难读(为了可读性)。如果代码是一行一行的,那么阅读起来容易,代码也容易更新。

有什么办法吗?任何帮助将不胜感激!

编码愉快!

甚至 Postgres:

代码仍然没有改变

Insert into tablename(field1,field2,field3 and so on....) values(value1,value2,value3 and so on...)

解决方法如下:

string connectionString = "Your connection string here";

protected static int ExecuteQuery(string query)
        {
            using (NpgsqlConnection con = new NpgsqlConnection(connectionString))
            {
                con.Open();
                using (NpgsqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = query;
                    cmd.CommandType = CommandType.Text;
                    int result = cmd.ExecuteNonQuery();
                    return result;
                }
            }
        }

要使用这个:

ExecuteQuery("Insert into tablename(field1,field2,field3 and so on....) values(value1,value2,value3 and so on...)")

感谢 @reds 的回答和建议。我意识到我唯一的问题是代码的可读性,而不是代码本身。正如您所说,Insert Query 是最好的解决方法。这就是我想出以下结构的原因:

////saving
        //CODE TO DATABASE
        NpgsqlConnection iConnect = new NpgsqlConnection("Server=localhost;Port=5432;User ID=postgres;Password=sdferekrjsdf873()#3s;Database=DB");
        iConnect.Open();
        NpgsqlCommand iQuery = new NpgsqlCommand
           ("insert into tblstudents_secure values('" + 
            myModule.studID + "','" + 
            myModule.studFname + "','" + 
            myModule.studMname + "','" + 
            myModule.studLname + "','" +
            myModule.studGrade + "','" +
            myModule.studSection + "','" + 
            myModule.studHomeAdd + "','" + 
            myModule.studProvAdd + "','" +
            myModule.studBday + "','" +
            myModule.studAge + "','" +
            myModule.studCivilStat + "','" +
            myModule.studHomeContact + "','" + 
            myModule.studProvContact + "','" + 
            myModule.studBplace + "','" +
            myModule.studGender + "','" +
            myModule.studReligion + "','" + 
            myModule.studFather + "','" + 
            myModule.studFatherOcc + "','" + 
            myModule.studMother + "','" + 
            myModule.studMotherOcc + "','" + 
            myModule.studGuardian + "','" + 
            myModule.studGuardianOcc + "','" + 
            myModule.studGuardianRel + "','" + 
            myModule.studGuardianContact + "','" + 
            myModule.studOldSchool + "','" + 
            myModule.studOldSchoolAdd  + "','" + 
            myModule.studOldGrade + "','" + 
            myModule.studOldSY + "','" + 
            myModule.studIsTransfer + "','" + 
            myModule.studHas137 + "','" + 
            myModule.studHas138 + "','" +
            myModule.studHasGoodMoral + "','" +
            myModule.studHasNSO + "','" + 
            myModule.studHasMed + "','" + 
            myModule.studRemarks + "','" +
            myModule.studDateRegistered + "','" +
            myModule.studEnrollmentStatus + "')", iConnect);

        iQuery.ExecuteNonQuery();
        iConnect.Close();

在哪里: `

myModule

static 字符串的 class 处理程序 studIDstudFname 等...

编码愉快!