在运行时修改SqlDataSource以连接到另一个Sqlite文件



我在Web.Config中为Sqlite定义了一个连接。我在一个表单上有一个SqlDataSource,它成功地使用了上述连接绑定到网格。

现在,我想让它变得灵活,这样我就可以将网格连接到App_data文件夹中的任何Sqlite数据文件。

假设字符串变量fname包含Sqlite文件的完整路径,下面是我尝试在每个Page_load(甚至是post-back)上执行的代码。

SqlDataSource1.ConnectionString = String.Format("data source = {0}", aFileName);

这样做是否正确,从而使SqlDataSource1独立于web.config文件中编码的连接字符串?我之所以这么问,是因为它第一次似乎有效,但后来在网格中的选择更改时,会恢复为使用web.config连接中指定的sqlite文件,因此如果缺少该文件,它会在弹出消息框中引发"sql logic error--table not found"sqlite异常。

经过一些实验后得到了它。正确的代码是:

SqlDataSource1.ConnectionString = String.Format("data source = {0}", aFileName);
if (Page.IsPostBack)
{
dataGrid.DataBind();
}

原因:由于我是动态设置DataSource的,所以每次回发时我都需要自己绑定数据。

相关内容

最新更新