我在写代码执行数据库插入操作的时候竟然不可以,出现错误的提示为sql_str超出范围!
不知道是什么意思,把数据库执行语句直接拷贝到查询分析器里面就可以直接执行插入操作!我查了好久,不知道原因,请大家相告.
try
{
OleDbConnection conn=new OleDbConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string sql_str="insert into diarybook (datea,weekday,weather,title,body) values ('"+DateTime.Now.Date+"','"+DateTime.Now.DayOfWeek+"','"+weather.SelectedValue+"','"+title.Text+"','"+content.Text+"')"; OleDbCommand comm=new OleDbCommand(sql_str,conn);
conn.Open();
comm.ExecuteNonQuery();
Msg.Text="添加日记成功";
conn.Close();
}
catch(Exception ee)
{
//Exception information
Msg.Text="无法添加日记!";
}

解决方案 »

  1.   

    Response.Write(sql_str)可以在查询分析器中执行但是不可以通过程序执行?
      

  2.   

    设置断点检查一下sql_str的值,是否与你预期的值相同。
      

  3.   

    报什么错???=======
    可能是这里,try =>
    string sql_str="insert into diarybook (datea,weekday,weather,title,body) values ('"+DateTime.Now.Date.ToString()+"','"+Convert.ToInt32(DateTime.Now.DayOfWeek).ToString()+"','"+weather.SelectedValue+"','"+title.Text+"','"+content.Text+"')";
      

  4.   

    Eddie005(♂) 暴赱 『零零伍』 (︶︵︶) 
    我不懂为什么需要转换一下.在什么时候需要转换?
      

  5.   

    OLEDB DATABASE的相对路径应该怎么写?可能是连接字符串的错误.我在本地目录下建的数据库,需要什么样的连接字符串?我在configuration里面设置字符串,不知道应该怎么写.我写的是错误的:
    <appSettings>
     <add key="ConnectionString" value="provider=microsoft.jet.oledb.4.0;data source=db\diary.mdb")></add>
     </appSettings>正确的是怎么写?
    我这样的写法,程序就会在系统文件夹下找数据库!
      

  6.   

    <add key="Access" value="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="/>
      

  7.   

    你使用Command参数的方法在写一下SQL语句.....看看是什么错误.
      

  8.   

    呵呵,我前天刚刚遇到一模一样的问题,是Access数据库没有写入权限吧?!
    右键属性,添加个everyone的写入的权限。
      

  9.   

    用WINDOWS应用程序写的链接字符串与WEB应用程序的字符串好象不是一样的比如在当前文件夹里有一个DB.MDB,在WINDOWS应用程序写DATA SOURCE=DB.MDB;就是在当前文件夹里寻找.而在WEB应用程序里则是到系统文件夹里找!!为什么,怎么才能用一个整句子写出来相对路径查询的字符串呢?