我刚刚加入了stackoverflow作为视觉工作室的相对新手用户,希望有人能够帮助回答我遇到的问题。
我确信这很简单,但目前我有一个Gridview,它绑定到我们的SQL Server中的表。
我遇到的问题是gridview,它是在内置向导的帮助下生成的。我的更新SQL语句是自定义的,非常简单:
UPDATE SMCsummove
SET SubmitQty = @Textbox1 * - 1, HasBeenEdited = 'Y'
WHERE (SMCPOinteger = @SMCPOinteger) AND (SMCproduct = @PartNo)
现在是新手,我不太确定我是否正确这样做,但是@ Textbox1是用户输入的值,作为更新表的新值,在他们点击了自动生成的“编辑”按钮之后。很简单,一旦他们点击了“更新”按钮,gridview就会恢复到SubmitQty列中的原始值。
如果有人能说出一些亮点或指出任何大规模的疏忽,那将是非常感激的!
答案 0 :(得分:0)
需要从gridview中查看更多代码才能确定,但看起来回发正在发生,这会导致gridview再次绑定并重置。
我对此也很陌生,而且我发现对gridviews有用的是有这样的pageload事件:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindGridView();
}
}
然后有一个单独的绑定语句(这是我使用的语句:
private void bindGridView()
{
string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
string selectSQL = String.Format("SQL Statement here");
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "Review");
GridView1.DataSource = ds;
GridView1.DataBind();
}
您可能会发现在更新记录后还必须调用gridbind以使用更新的值重新填充gridview。