Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中逐行向PostgreSQL插入新记录#_C#_Postgresql_Visual Studio 2012_Vb6 - Fatal编程技术网

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

C# 在C中逐行向PostgreSQL插入新记录#,c#,postgresql,visual-studio-2012,vb6,C#,Postgresql,Visual Studio 2012,Vb6,你好 我是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("Fie

你好

我是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语句进行插入

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

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

快乐编码

即使是博士后:

代码仍然不会改变它

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...)")

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

////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
字符串studIDstudFname等的类处理程序


快乐编码

问题是你的记录来自哪里?即使字段可能是什么,除了为每个指定的字段指定值之外,您也没有其他选择。您可以搜索有关如何使用Postgressir在数据库中插入记录的更多信息,我们是否有类似
iDataSet.Tables[0]这样的解决方法。行[0][“stud_id”]=txtStudID.Text?我希望它看起来像vb6,一行一行。忘记vb6了。。你现在在另一个环境中工作,明白了。谢谢。但是你必须注意Postgres中的命名约定,不要使用像Field1这样的大写字段,因为你将在查询中使用将其称为select“Field1”。但是,如果您使用像field1这样的小写字母,您可以直接将其键入select field1,而无需使用双qoutes neede。