首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从sql数据库中选择table1以外的数据需要从table2 +asp.net vb中选择

如何从sql数据库中选择table1以外的数据需要从table2 +asp.net vb中选择
EN

Stack Overflow用户
提问于 2018-05-31 15:30:36
回答 1查看 52关注 0票数 0

我有两张桌子FixedAssetMaster_ora和FixedAssetMaster_old。我想做的是首先检查数据是否存在于FixedAsset_old中。如果存在,则从表中选择dta,如果不存在,则需要从FixedAssetMaster_ora.Currently中选择数据。我代码总是从FixedAssetMaster_ora中选择数据。

下面是我的代码:

代码语言:javascript
复制
 Dim reccount As String = 0
        Conn = New SqlConnection
        Conn.ConnectionString = ConnStr
        Conn.Open()
        cmd = New SqlCommand

        cmd.CommandText = "Select COUNT(*) FROM FixedAssetMaster_old WHERE ASSET_NUMBER=" & AssetTxt.Text & " And LOC_DEPT=" & DeptTxt.Text & " AND UNIT_NO='" & UnitNoTxt.Text & "' AND (DATEPART(MM, UPDATE_DATE) = " & nowMonth & ") AND (DATEPART(yyyy, UPDATE_DATE) =" & nowYear & ") ;"
        cmd.Connection = Conn
        rdmysql = cmd.ExecuteReader
        If rdmysql.Read = True Then
            'reccount = rdmysql.GetString(0)
            reccount = Val(rdmysql.GetInt32(0))
        End If
        cmd.Dispose()
        rdmysql.Close()
        If reccount = 0 Then
            strsql = "Select * FROM FixedAssetMaster_old WHERE ASSET_NUMBER=" & AssetTxt.Text & " AND LOC_DEPT=" & DeptTxt.Text & " AND UNIT_NO='" & UnitNoTxt.Text & "' And (DATEPART(MM, UPDATE_DATE) = " & nowMonth & ") And (DATEPART(yyyy, UPDATE_DATE) =" & nowYear & ") ;"
            cmd.Connection = Conn
            cmd.CommandText = strsql
            rdmysql = cmd.ExecuteReader

            If rdmysql.Read = True Then
                If rdmysql.IsDBNull(rdmysql.GetOrdinal("ASSET_KEY_SEGMENT3")) = False Then LocationTxt.Text = rdmysql.GetString(rdmysql.GetOrdinal("ASSET_KEY_SEGMENT3"))
                'If rdmysql.IsDBNull(rdmysql.GetOrdinal("REMARKS")) = False Then RemarksTxt.Text = rdmysql.GetString(rdmysql.GetOrdinal("REMARKS"))
                'If rdmysql.IsDBNull(rdmysql.GetOrdinal("REMARKS")) = False Then DDLRemarks.Text = rdmysql.GetString(rdmysql.GetOrdinal("REMARKS"))
            End If
            cmd.Dispose()
            rdmysql.Close()


        ElseIf reccount = 1 Then

            strsql = "Select * FROM FixedAssetMaster_Ora WHERE ASSET_NUMBER=" & AssetTxt.Text & " AND LOC_DEPT='" & DeptTxt.Text & " ';"
            cmd.Connection = Conn
            cmd.CommandText = strsql
            rdmysql = cmd.ExecuteReader

            If rdmysql.Read = True Then
                If rdmysql.IsDBNull(rdmysql.GetOrdinal("ASSET_KEY_SEGMENT3")) = False Then LocationTxt.Text = rdmysql.GetString(rdmysql.GetOrdinal("ASSET_KEY_SEGMENT3"))
                'If rdmysql.IsDBNull(rdmysql.GetOrdinal("REMARKS")) = False Then RemarksTxt.Text = rdmysql.GetString(rdmysql.GetOrdinal("REMARKS"))
                'If rdmysql.IsDBNull(rdmysql.GetOrdinal("REMARKS")) = False Then DDLRemarks.Text = rdmysql.GetString(rdmysql.GetOrdinal("REMARKS"))
            End If
            cmd.Dispose()
            rdmysql.Close()

        End If

关于这件事,有人能帮我一下吗?提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 15:59:17

我对VB不是很熟悉,但在C#中你可以这样做:

代码语言:javascript
复制
SqlCommand cmd = new SqlCommand();
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    cmd.CommandText = "Select count(*) from FixedAssetMaster_old WHERE ASSET_NUMBER=" & AssetTxt.Text & " And LOC_DEPT=" & DeptTxt.Text & " AND UNIT_NO='" & UnitNoTxt.Text & "' AND (DATEPART(MM, UPDATE_DATE) = " & nowMonth & ") AND (DATEPART(yyyy, UPDATE_DATE) =" & nowYear & ") ;";
    cmd.Connection = con;
    if (con.State == ConnectionState.Closed)
    {
        con.Open();
    }
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        //Select from FixedAssetMaster_old table
    }
    else
    {
        //Select FROM FixedAssetMaster_Ora table
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50618971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档