C# 在C中逐行向PostgreSQL插入新记录#
你好 我是C#NET的新手(我来自VB6) 我想使用PostgreQL将新记录插入数据库 我可以使用一行代码,如: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
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
字符串studID、studFname等的类处理程序
快乐编码 问题是你的记录来自哪里?即使字段可能是什么,除了为每个指定的字段指定值之外,您也没有其他选择。您可以搜索有关如何使用Postgressir在数据库中插入记录的更多信息,我们是否有类似
iDataSet.Tables[0]这样的解决方法。行[0][“stud_id”]=txtStudID.Text代码>?我希望它看起来像vb6,一行一行。忘记vb6了。。你现在在另一个环境中工作,明白了。谢谢。但是你必须注意Postgres中的命名约定,不要使用像Field1这样的大写字段,因为你将在查询中使用将其称为select“Field1”。但是,如果您使用像field1这样的小写字母,您可以直接将其键入select field1,而无需使用双qoutes neede。