asp中遇到的几个问题——数据库连接,几个常见控件的使用问题及其解决

来源:互联网 发布:久坐肚子大 知乎 编辑:程序博客网 时间:2024/05/29 12:59

       虽然笔者现在正在java方向的大道上拼死狂奔,但课程中还是以C#语言为主线,没错,笔者是个苦逼的学生党,所以研究的东西都是比较基本的,虽然或许都是比较浅显的,但都是本人花了时间和心思才得以解决的所以在这里还是恬不知耻地贴出来,希望能给后来的新手们提供帮助。

    1.ASP中Access数据库链接的配置文件的写法:基本思路写在配置文件中,这里就直接写在web.config中,一般的不好走是这样的,在配置文件中加入键值对语句如下:

   <appSettings>
    <!-- <add key="newsdb" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\vsset\WebSite1\App_Data\Northwind.mdb"></add>-->
    <add key="mydb"  value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb"></add>
  </appSettings>

其中key是自己起的名字,就相当于一个id以方便在后面调用,第一种写法是绝对路径,在实际操作中基本不会这样写,其实解除多了就会发现在网站下面都会自动有一个APP_Data文件夹,一般来说那才是实际项目工程中存放数据库的地方,那么就要使用相对路径了,上面的第二种写法就是这样将前面那一大串路径换成|DataDirectory|,注意前后是有竖线的!

 好了配置文件写好了怎么子啊程序中连接数据库呢?语句如下:
        OleDbConnection con = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["mydb"]);//核心语句
        String sql = "";//SQL语句
        con.Open();//打开连接

  记得要导入相关的包!

好了,这样写基本的Access数据库就能连接成功了,但如果你使用的是2010版及以后的Access数据库就会发现上面的会报错,因为用过的就会发现2010版本的Access的后缀改为了.accdb

这个时候配置文件就跌小小的修改一下,如下:

<appSettings>
    <!-- <add key="newsdb" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\vsset\WebSite1\App_Data\Northwind.mdb"></add>-->
    <!--<add key="mydb"  value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb"></add>-->
    <add key="mydb" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|Northwind.accdb"></add>
  </appSettings>

可以发现就是改了一个关键字而已。

ok,基本上在Access连接这一块就差不多了,至于SqlServer,本人用的不是很多,一是当初用的时候各种错,二是比起SqlServer Access在小型项目上轻便的特性显露无疑。

2.Asp的几个可以绑定数据源的控件在sql语句不复杂的情况下使用起来还是很6的,虽然这为很多正儿八经的程序猿所不齿。。。

下面就以GridView为例来展示一下,基本的需求数据源和控件,这里我用的是Access数据源,先配置数据源,直接点开数据源右边的箭头就开始配置:

接下来的就简单了直接点击就ok,配置好数据源之后在同样的操作对GridView选择数据源,就完成了。

但是需求来了,比如说我有这样两个需求,在页面中再添加一个radiobuttonList空间要求GridView中的数据根据我radiobutton的选定值来显示,其次我的GridView要有直接操作数据即增删改的功能。

对于第一个需求修改在数据源:在下面的界面中

点击where那个按钮进入下面一个页面,就开始配置条件了(很好使有没有!),先选择列,就是要给哪一个字段限定条件,然后后面的运算符就不多说了,接下来就是源:点开之后就会惊喜的发现各种可能的都在里卖弄包括session,cookie,control等等,根据实际需要这里选择control,选择之后再去配置确切的控件就ok

对于第二个需求还是要改数据源,在上图中点击高级勾选生成insert,delete,update语句,然后再去数据控件中就会发现出现了启用编辑等等一切我们所需的。

3.radioButtonList,为什么单独说这个控件呢,因为笔者在实际操作中发现这样一个问题:

  来看需求:

需求看起来很简单就是一个联动的问题,理论上代码就是这样写就ok:

但是,你会发现然并卵,代码的逻辑是没有错的,测试一把发现渠道的vaule是null!对是空,没有取到,上网找了些资料发现不能这样得到选中值,解决方法是通过request.form[]来取就像我上面注释掉的那个代码一样就ok了!

0 0