16 个解决方案
#1
实在不行,你就用DATAVIEW自带的排序功能呗。
不过我们的排序ORDER BY 是没问题的啊。
不过我们的排序ORDER BY 是没问题的啊。
#2
把你的sql语句在 查询分析器里面 试试 看得到的值 是不是 和 datatable的值一样
#3
你确定你取到的数据正确?
#4
填充到dataset当中之前调试的sql语句一直就是排序正确的。
#5
理论上不会,具体的楼主可贴出相关代码,供大家分析一下。你目前提供的内容,难以给出解决方案
#6
贴一下sql语句
和读出Dataset后绑定到控件上的代码
和读出Dataset后绑定到控件上的代码
#7
应该顺序是好的吧
#8
protected void Page_Load(object sender, EventArgs e)
{
Bind();
}
/// <summary>
/// 绑定区域信息
/// </summary>
protected void Bind()
{
string sql = string.Empty;
gvdept.DataSource = fy_dep.GetList("FlagDeleted = 0 AND FlagTrashed = 0 AND Layer = 2 AND DeptID1 NOT IN ( SELECT DeptID FROM dbo.FY_Department WHERE DeptNo IN ( '01', '02' ) ) ORDER BY dbo.FY_Department.DeptNo");
gvdept.DataBind();
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
StringBuilder strSql=new StringBuilder();
//strSql.Append("select DeptID,DeptNo,DeptName,Layer,ModDate,FlagTrashed,FlagDeleted,Header,ExDate,Tel,Address,BrokerNo,DeptLimitedProperty,DeptLimitedInquiry,DeptLimitedPublic,DeptLimitedPrivate,DistrictLimitedProperty,DistrictLimitedInquiry,AreaLimitedProperty,AreaLimitedInquiry,DeptLimitedPF,DeptLimitedIF,TargetCon,TargetAct,DeptType,DeptID1,DeptID2,DeptID3,DeptGroup,cox,coy,exchangedate,location ");
strSql.Append("select DeptID,DeptNo,DeptName,Layer,Direction ");
strSql.Append(" FROM FY_Department ");
if(strWhere.Trim()!="")
{
strSql.Append(" where "+strWhere);
}
DbHelperSQL.ChangeDBServer("9");
return DbHelperSQL.Query(strSql.ToString());
}
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
<asp:GridView ID="gvdept" runat="server" AutoGenerateColumns="False" HorizontalAlign="Center"
Width="500px" OnRowDataBound="gvdept_RowDataBound">
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<Columns>
<asp:BoundField DataField="deptname" HeaderText="区域名称" />
<asp:TemplateField HeaderText="划分">
<ItemTemplate>
<asp:RadioButtonList ID="rblDirection" runat="server" RepeatDirection="Horizontal"
class="huafen">
<asp:ListItem Value="0" Text="不分"></asp:ListItem>
<asp:ListItem Value="1" Text="东南"></asp:ListItem>
<asp:ListItem Value="2" Text="西北"></asp:ListItem>
</asp:RadioButtonList>
<asp:HiddenField ID="hiddeptid" runat="server" Value='<%# Eval("deptid") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle Font-Size="14px" Height="30px" />
</asp:GridView>
断点调试sql语句的顺序和gridview上面显示的顺序不是一样的。
#9
DataSet就如同一个微型数据库,所以操作和数据库一样,没有排序你取数据的时候再排一次吧
#10
理解错误~~~
#11
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostback){
Bind();}
}
还有使用SqlDataAdapter的时候SqlConnection不用手动Open,适配器会自动打开的
SqlCommand需要手动Open
#12
楼主,你确定你渠道的数据是对的?
#13
我那个SqlDataAdapter是李天平的代码生成器生成的,难道李天平也写错了?
#14
您是说,在这里的sql语句里面就没必要写order by了吗?需要dataset进行一次排序?
#15
应该和DataSet没关系。你把Sql语句提出来单独运行一下,感觉和ORDER BY dbo.FY_Department.DeptNo这句有关系。改成ORDER BY DeptNo试试
#16
sql语句单独提出来运行的顺序跟dataset就是不一样。
#1
实在不行,你就用DATAVIEW自带的排序功能呗。
不过我们的排序ORDER BY 是没问题的啊。
不过我们的排序ORDER BY 是没问题的啊。
#2
把你的sql语句在 查询分析器里面 试试 看得到的值 是不是 和 datatable的值一样
#3
你确定你取到的数据正确?
#4
填充到dataset当中之前调试的sql语句一直就是排序正确的。
#5
理论上不会,具体的楼主可贴出相关代码,供大家分析一下。你目前提供的内容,难以给出解决方案
#6
贴一下sql语句
和读出Dataset后绑定到控件上的代码
和读出Dataset后绑定到控件上的代码
#7
应该顺序是好的吧
#8
protected void Page_Load(object sender, EventArgs e)
{
Bind();
}
/// <summary>
/// 绑定区域信息
/// </summary>
protected void Bind()
{
string sql = string.Empty;
gvdept.DataSource = fy_dep.GetList("FlagDeleted = 0 AND FlagTrashed = 0 AND Layer = 2 AND DeptID1 NOT IN ( SELECT DeptID FROM dbo.FY_Department WHERE DeptNo IN ( '01', '02' ) ) ORDER BY dbo.FY_Department.DeptNo");
gvdept.DataBind();
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
StringBuilder strSql=new StringBuilder();
//strSql.Append("select DeptID,DeptNo,DeptName,Layer,ModDate,FlagTrashed,FlagDeleted,Header,ExDate,Tel,Address,BrokerNo,DeptLimitedProperty,DeptLimitedInquiry,DeptLimitedPublic,DeptLimitedPrivate,DistrictLimitedProperty,DistrictLimitedInquiry,AreaLimitedProperty,AreaLimitedInquiry,DeptLimitedPF,DeptLimitedIF,TargetCon,TargetAct,DeptType,DeptID1,DeptID2,DeptID3,DeptGroup,cox,coy,exchangedate,location ");
strSql.Append("select DeptID,DeptNo,DeptName,Layer,Direction ");
strSql.Append(" FROM FY_Department ");
if(strWhere.Trim()!="")
{
strSql.Append(" where "+strWhere);
}
DbHelperSQL.ChangeDBServer("9");
return DbHelperSQL.Query(strSql.ToString());
}
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
<asp:GridView ID="gvdept" runat="server" AutoGenerateColumns="False" HorizontalAlign="Center"
Width="500px" OnRowDataBound="gvdept_RowDataBound">
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<Columns>
<asp:BoundField DataField="deptname" HeaderText="区域名称" />
<asp:TemplateField HeaderText="划分">
<ItemTemplate>
<asp:RadioButtonList ID="rblDirection" runat="server" RepeatDirection="Horizontal"
class="huafen">
<asp:ListItem Value="0" Text="不分"></asp:ListItem>
<asp:ListItem Value="1" Text="东南"></asp:ListItem>
<asp:ListItem Value="2" Text="西北"></asp:ListItem>
</asp:RadioButtonList>
<asp:HiddenField ID="hiddeptid" runat="server" Value='<%# Eval("deptid") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle Font-Size="14px" Height="30px" />
</asp:GridView>
断点调试sql语句的顺序和gridview上面显示的顺序不是一样的。
#9
DataSet就如同一个微型数据库,所以操作和数据库一样,没有排序你取数据的时候再排一次吧
#10
理解错误~~~
#11
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostback){
Bind();}
}
还有使用SqlDataAdapter的时候SqlConnection不用手动Open,适配器会自动打开的
SqlCommand需要手动Open
#12
楼主,你确定你渠道的数据是对的?
#13
我那个SqlDataAdapter是李天平的代码生成器生成的,难道李天平也写错了?
#14
您是说,在这里的sql语句里面就没必要写order by了吗?需要dataset进行一次排序?
#15
应该和DataSet没关系。你把Sql语句提出来单独运行一下,感觉和ORDER BY dbo.FY_Department.DeptNo这句有关系。改成ORDER BY DeptNo试试
#16
sql语句单独提出来运行的顺序跟dataset就是不一样。