我自己学习这个,并且我已经达到了我想要插入新类别和新国家的程度,但我不知道该怎么做。
例如,要添加新类别,请执行以下操作:
public int Insert()
{
string sqlString = "INSERT INTO Categories (name, image) VALUES (@Name, @Image);";
SqlConnection sqlConnection = new
SqlConnection(ConfigurationManager.ConnectionStrings["OahuDB"].ConnectionString);
SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection);
sqlCommand.Parameters.AddWithValue("@Name", this.Name);
sqlCommand.Parameters.AddWithValue("@Image", this.Image);
sqlConnection.Open();
int x = sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
sqlConnection.Dispose();
return x;
}
但是,如何在两个表之间插入关系,然后根据联结表检索数据?
如果您可以提供示例和良好的教程,或者您可以详细说明一下。 非常感谢。
答案 0 :(得分:1)
像这样发送SQL:
INSERT INTO Categories (name, image) VALUES (@Name, @Image);
SELECT scope_identity() as NewCategoryId;
这将返回新添加的类别的ID作为行集。您可以使用熟悉的ExecuteReader()
:
using (var read = sqlCommand.ExecuteReader())
{
read.Read();
int newCategoryId = (int) read["NewCategoryId"];
}
甚至更短ExecuteScalar()
:
int newId = (int)sqlCommand.ExecuteScalar();
顺便说一句,请考虑在using
using (var sqlConnection = new SqlConnection("...connection string...")
{
sqlConnection.Open();
var sqlCommand = sqlConnection.CreateCommand();
...
}
这有助于防止连接泄漏。 Execute
方法之一总是可能抛出异常,无论是超时还是网络问题。