200分求高手帮我修改一下程序!!!急!

1.我想要在datalist1中点击文章的分类,然后在datalist2中显示该分类的所有文章,可是用以下代码点击文章分类后永远都是显示没有相关文章,请问这是怎么回事啊?datalist1的数据源是datasource1,datalist2的数据源是datalist2.
Dim str As String
str = Request.QueryString("ClassId")
If String.IsNullOrEmpty(str) Then
DataList2.DataSourceID = SqlDataSource2.ID
Else
DataList2.DataSourceID = SqlDataSource3.ID
If DataList2.Items.Count = 0 Then
Label2.Text = "没有相关文章!"
End If
End If
2.点击刚才的datalist2的一个标题后将进入文章浏览页面,我先创建了一个oledbdataadapter对象,然后利用该对象的fill方法将查询的内容填充至dataset对象中,最后利用label和div控件显示dataset对象中的数据.可是敲入以下代码后编译报错"语法错误 (操作符丢失) 在查询表达式 'id=' 中"
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
strConn &= "Data Source=" + Server.MapPath("blog.mdb")
Dim oleDbConn As OleDbConnection
oleDbConn = New OleDbConnection(strConn)

Dim oleAdp As OleDbDataAdapter
oleAdp = New OleDbDataAdapter("select*from blog where id=" + Request.QueryString("Id"), oleDbConn)
Dim ds As Data.DataSet = New Data.DataSet
oleAdp.Fill(ds, "blog")(它说这句有问题?)
Dim dr As Data.DataRow
dr = ds.Tables("blog").NewRow()
dr = ds.Tables("blog").Rows.Item(0)

Label1.Text = dr("title").ToString()
DIV1.InnerHtml = toHtml(dr("content").ToString())
Label2.Text = "[发布时间:" + dr("date") + "]"
3.下面是发表文章的页面,将文章内容写入数据库,可是当写入的时候会这样报错"INSERT INTO 语句的语法错误。"
If TextBox1.Text = "" Then

End If
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
strConn &= "Data Source=" + Server.MapPath("blog.mdb")
Dim oleDbConn As OleDbConnection
oleDbConn = New OleDbConnection(strConn)

Dim oleDbCmd As OleDbCommand = oleDbConn.CreateCommand()
Dim strCmd As String = "insert into" & "blog(title,content,date,classId) Values('"
strCmd &= TextBox1.Text + "','" + TextBox2.Text + "','" + DateTime.Now.ToString() + "','"
strCmd &= DropDownList1.SelectedValue + "')"
oleDbCmd.CommandText = strCmd

oleDbConn.Open()
Dim i As Integer = oleDbCmd.ExecuteNonQuery()(就说的是这句)
oleDbConn.Close()

Response.Redirect("NewsMag.aspx")
以上问题能回答几个就回答几个,急用!最多挂三天!以上是我用visual studio 2005 做的,语言是vb.

第1个回答  2008-01-05
高数据库的安全性
由于Access数据库加密机制过于简单,因此,如何有效地防止Access
数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。

1.非常规命名法
防止数据库被找到的简便方法是为Access数据库文件起一个复杂的非常
规名字,并把它存放在多层目录下。例如,对于网上书店的数据库文件,
不要简单地命名为“book.mdb”或“store.mdb”,而是要起个非常规的
名字,例如:faq19jhsvzbal.mdb,再把它放在
如./akkjj16t/kjhgb661/acd/avccx55 之类的深层目录下。这样,对于
一些通过猜的方式得到Access数据库文件名的非法访问方法起到了有效的
阻止作用。

2.使用ODBC数据源
在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在
程序中,否则,数据库名将随ASP源代码的失密而一同失密。例如:
DBPath = Server.MapPath(“./akkjj16t/
kjhgb661/acd/avccx55/faq19jhsvzbal.mdb ”)
conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密
后,数据库也很容易被下载下来。如果使用ODBC数据源,就不会存在这样
的问题了:
conn.open “ODBC-DSN名”
对ASP页面进行加密
为有效地防止ASP源代码泄露,可以对ASP页面进行加密。一般有两种方
法对ASP页面进行加密。一种是使用组件技术将编程逻辑封装入DLL之中;
另一种是使用微软的Script Encoder对ASP页面进行加密。但是,使用组
件技术存在的主要问题是每段代码均需组件化,操作比较烦琐,工作量较
大;而使用Script Encoder对ASP页面进行加密,操作简单、收效良好。
Script Encoder
第2个回答  2008-01-05
1 DataList2.DataSourceID = SqlDataSource3.ID 这一句是怎么回事

2 oleAdp = New OleDbDataAdapter("select*from blog where id=" + Request.QueryString("Id")
这一句应该是从地址栏里面取Id的值,但是刚开始Id是没有值的,所以出错了,你给个初始值,或者当id=''时,做个判断.

3 你把Dim i As Integer = oleDbCmd.ExecuteNonQuery()(就说的是这句) 换成显示strCmd 变量的值,看一下strCmd的值是不是在生成的时候出了什么问题.本回答被提问者采纳
第3个回答  2008-01-05
用指针功能可解决
相似回答