找错误
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 + "% ' ";
另外,预先检查一下几个传入的字符串是否为空,是否非法等