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

找异常

2012-01-28 
找错误stringsconnuidsapwddatabasetuserver stringkeywordRequest[ keyword ]stringsearc

找错误
string   sconn   =   "uid=sa;pwd=;database=tu;server= ";
                string   keyword   =   Request[ "keyword "];
                string   searchword   =   Request[ "searchword "];
                if   (string.IsNullOrEmpty(keyword)   ||   string.IsNullOrEmpty(searchword))
                {
                        Response.Redirect( "Default.aspx ");
                }
                else
                {
                        string   sql   =   "select   *   from   TABLE   where   "   +   keyword   +   "   like   %& "   +   searchword   +   "&% ";
                        SqlConnection   conn   =   new   SqlConnection(sconn);
                        conn.Open();
                        SqlDataAdapter   da   =   new   SqlDataAdapter(sql,   conn);
                        DataSet   ds   =   new   DataSet();
                        da.TableMappings.Add( "TABLE ",   "TABLE ");
                        da.TableMappings[0].ColumnMappings.Add( "TITLE ",   "TITLE ");
                        da.TableMappings[0].ColumnMappings.Add( "AUTHER ",   "AUTHER ");
                        da.TableMappings[0].ColumnMappings.Add( "ISBS ",   "ISBS ");
                        da.TableMappings[0].ColumnMappings.Add( "LECTURER ",   "LECTURER ");
                        da.TableMappings[0].ColumnMappings.Add( "UNITCODE ",   "UNITCODE ");
                        da.TableMappings[0].ColumnMappings.Add( "COPY ",   "COPY ");
                        da.Fill(ds);
                        DataGrid1.DataSource   =   ds.Tables[ "TABLE "].DefaultView;
                        ViewState[ "Row "]   =   ds.Tables[ "TABLE "].DefaultView.Count;
                        DataGrid1.DataBind();
                }

------解决方案--------------------


直接绑定阿
[解决办法]
要我说错误
就是如果要显示全部字段
直接 DataGrid1.DataSource = ds.Tables[ "TABLE "].DefaultView
不要 mapping
设成自动生成列
[解决办法]
Request[ "keyword "]的使用前应加判断是否为NULL,不为空才可以进行下一步工作,对于SQL应该不会错;我也遇到类似问题,判断不为空即可!!!仅供参考!
[解决办法]
string sconn = "uid=sa;pwd=;database=tu;server= ";
to:
string sconn = "uid=sa;pwd=;database=tu;server=. ";
[解决办法]
string sql = "select * from TABLE where " + keyword + " like %& " + searchword + "&% ";
To:
string sql = "select * from TABLE where " + keyword + " like '% " + searchword + "% ' ";

注意 % 那里的变化
[解决办法]

string sql = "select * from TABLE where " + keyword + " like %& " + searchword + "&% ";

在此之前要判断keyword 和 searchword 是否为空
否则报错 { "在关键字 'TABLE ' 附近有语法错误。 "}

[解决办法]
把TABLE 改为[TABLE]
[解决办法]
TABLE 是表的关键字
[解决办法]
string sql = "select * from dbo.[TABLE] where " + keyword + " like '% " + searchword + "% ' ";
另外,预先检查一下几个传入的字符串是否为空,是否非法等

热点排行