我有以下代码
public class BaseController : Controller
{
SqlConnection con;
DataSet dsl;
SqlDataAdapter da;
public ActionResult Index()
{
con = new SqlConnection();
dsl = new DataSet();
con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\tbl.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
con.Open();
string sql = "SELECT * From tbl_fb";
//string sql = "INSERT INTO tbl_fb (Ime) VALUES ('aaa3')";
da = new SqlDataAdapter(sql, con);
da.Fill(dsl, "fb");
SqlCommandBuilder cb;
cb = new SqlCommandBuilder(da);
DataRow dRow = dsl.Tables["fb"].NewRow();
dRow[1] = "some text";
dsl.Tables["fb"].Rows.Add(dRow);
da.Update(dsl, "fb");
}
}
此代码应该将“aaa3”字符串保存到“Ime”行。或者将“some text”字符串添加到行1(这是Ime - 第二行)。
但它不起作用。任何人都知道原因。
我使用this tutorial尝试了此操作。
感谢。
答案 0 :(得分:1)
像您一样创建DataAdapter对象时,仅设置SelectCommand属性。您在DataAdapter对象中没有设置UpdateCommand或InsertCommand来更新数据库中的数据。 这样做:
da.UpdateCommand = new SqlCommand(sqlUpdateQuary)
da.InsertCommand = new SqlCommand(sqlUpdateQuary)
答案 1 :(得分:1)
他仍然需要执行命令对象。然而第二位看起来很奇怪......
用tbl_fb替换fb,如:
DataRow dRow = dsl.Tables["tbl_fb"].NewRow();
dRow[1] = "some text";
dsl.Tables["tbl_fb"].Rows.Add(dRow);
da.Update(dsl, "tbl_fb");