插入问题

时间:2011-01-11 10:58:28

标签: c# sql sql-server asp.net-mvc

我有以下代码

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尝试了此操作。

感谢。

2 个答案:

答案 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");