首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

不知道什么有关问题

2012-03-05 
不知道什么问题privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面

不知道什么问题
private   void   Page_Load(object   sender,   System.EventArgs   e)
{
//   在此处放置用户代码以初始化页面
if(!IsPostBack)Bindgrid();
}
public   void   Bindgrid()
{
string   cnn_str= "Provider=Microsoft.Jet.OleDb.4.0;Data   Source= ";
cnn_str+=Server.MapPath( "database/web.mdb ");  
OleDbConnection   objConnection=new   OleDbConnection(cnn_str);
objConnection.Open();//打开连接

string   sql_search   =   "select   *   from   cj_7   where   kind   =   1 ";
if(txt_ID.Text!= " ")
{
sql_search   +=   "and   stu__ID   =   "+Convert.ToInt64(txt_ID.Text.Trim())+ " ";    
}
OleDbDataAdapter   da_search   =   new   OleDbDataAdapter(sql_search,objConnection);
DataSet   ds_search   =   new   DataSet();        
da_search.Fill(ds_search, "ds_name ");
dg_search.DataSource=ds_search;        
dg_search.DataBind();
objConnection.Close();
                  }


错误提示:
        “/myweb”应用程序中的服务器错误。
--------------------------------------------

至少一个参数没有被指定值。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.Data.OleDb.OleDbException:   至少一个参数没有被指定值。

源错误:  


行   43:   OleDbDataAdapter   da_search   =   new   OleDbDataAdapter(sql_search,objConnection);
行   44:   DataSet   ds_search   =   new   DataSet();        
行   45:   da_search.Fill(ds_search, "ds_name ");
行   46:   dg_search.DataSource=ds_search;        
行   47:   dg_search.DataBind();
 

源文件:   c:\inetpub\wwwroot\myweb\stu_search.aspx.cs         行:   45  

堆栈跟踪:  


[OleDbException   (0x80040e10):   至少一个参数没有被指定值。]
      System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32   hr)
      System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS   dbParams,   Object&   executeResult)
      System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&   executeResult)
      System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior   behavior,   Object&   executeResult)
      System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior   behavior,   String   method)
      System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior   behavior)
      System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior   behavior)
      System.Data.Common.DbDataAdapter.FillFromCommand(Object   data,   Int32   startRecord,   Int32   maxRecords,   String   srcTable,   IDbCommand   command,   CommandBehavior   behavior)
      System.Data.Common.DbDataAdapter.Fill(DataSet   dataSet,   Int32   startRecord,   Int32   maxRecords,   String   srcTable,   IDbCommand   command,   CommandBehavior   behavior)
      System.Data.Common.DbDataAdapter.Fill(DataSet   dataSet,   String   srcTable)


      myweb.stu_search.Bindgrid()   in   c:\inetpub\wwwroot\myweb\stu_search.aspx.cs:45
      myweb.stu_search.but_serach_Click(Object   sender,   EventArgs   e)   in   c:\inetpub\wwwroot\myweb\stu_search.aspx.cs:84
      System.Web.UI.WebControls.Button.OnClick(EventArgs   e)
      System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)
      System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,   String   eventArgument)
      System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)
      System.Web.UI.Page.ProcessRequestMain()

 


--------------------------------------------
版本信息:   Microsoft   .NET   Framework   版本:1.1.4322.573;   ASP.NET   版本:1.1.4322.573  



[解决办法]
试试:
string sql_search = "select * from cj_7 where kind = 1 ";
if(txt_ID.Text!= " ")
{
sql_search += " and stu__ID = "+Convert.ToInt64(txt_ID.Text.Trim())+ " "; //and前面加了一个空格
}
[解决办法]
同上
[解决办法]
string sql_search = "select * from cj_7 where kind = 1 ";
if(txt_ID.Text!= " ")
{
sql_search += "and stu__ID = "+Convert.ToInt64(txt_ID.Text.Trim())+ " ";
}
=====================================================
and 前面给一个空格, 如果数据库里stu__ID是整型,不要后面的 " "

string sql_search = "select * from cj_7 where kind = 1 ";
if(txt_ID.Text!= " ")
{
sql_search += " and stu__ID = "+Convert.ToInt64(txt_ID.Text.Trim());
}
[解决办法]
txt_ID.Text.Trim()
调试看看这个是不是为空
[解决办法]
if(txt_ID.Text!= " ")
{
sql_search += " and stu__ID = "+Convert.ToInt64(txt_ID.Text.Trim())+ " ";
}

在这之后加
Response.Write (sql_search);

后面的代码都注释掉,看看这个语句是否能在数据库中执行

热点排行