<asp:TemplateField HeaderText="用户角色">
                                    <ItemTemplate>
                                        <asp:Label ID="lblRoleName" runat="server" Text='<%# (GetRoleNameById((int)Eval("RoleId"))).RoleName %>'></asp:Label>
                                    </ItemTemplate>
                                    <HeaderStyle CssClass="listtable_recordtitle" HorizontalAlign="Center" />
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:TemplateField>我的RoleInfo表和UserInfo表有主外键关系。连SqlServer数据库时可以这样转化,为什么连Oracle后,报错?字符转换失败高手,帮忙!
还有,请问一下:C#连接Oracle数据库与连接SqlServer有什么不同?

解决方案 »

  1.   

    C#连接 Access,SQL server,DB2,Oracle
      

  2.   

    除了sql语句的写法略有不同外,再就是调用的对象不一样,想不到有什么其它的不同了。
      

  3.   

    检查下字符串的数据类型(Oracel有部分跟sql不一样 ,转换也不一样),或贴你的sql看
      

  4.   

    是有点不同。Oracle的语法与SQL SERVER语法虽然有些相似,但是Oracle采用的语言要较SQL SERVER复杂些。主要是可以在后台代码里改为与Access一样就可以。
      

  5.   

    sql语句就是select * from UserInfo.只是要将RoleId显示为RoleName。上面贴出来的代码就是转化代码丫。
      

  6.   


    <ItemTemplate>
                                            <asp:Label ID="lblRoleName" runat="server" Text='<%# (GetRoleNameById((int)Eval("RoleId"))).RoleName %>'></asp:Label>
                                        </ItemTemplate>就是这里报错。转化类型出错。但是连接SqlServer时没错啊。
      

  7.   

    高手呢?帮忙。。 Text='<%# (GetRoleNameById((int)Eval("RoleId"))).RoleName %>'
    这里不能这样转吗?
      

  8.   

    使用的provider不同,连接字符串也不大一样。等等、、、
    看看1#的
      

  9.   

    类型是不同的,oracle里什么类型
    强制转换
    Int16 
    Int16 或 OracleClient OracleNumber  
      

  10.   

     Text='<%# ((GetRoleNameById((int.Parse(Eval("RoleId").ToString())))).RoleName).ToString() %>'