首页 > 解决方案 > Asp.NET C# MVC - 如何显示结果与多个表的查询

问题描述

我正在执行以下代码:

public ActionResult BranchUser(int ? idBranch)
        {
            CtrForm objCtrForm = new CtrForm();
            objCtrForm.Connect();
            objCtrForm.query.Connection = objCtrForm.connection;
            objCtrForm.query.CommandType = CommandType.Text;
            List<tblUser> listBranchUser = new List<tblUser>();
            string sql = @"SELECT B.name, B.phone, B.email, B.idUser FROM tblBranchUser A
                           INNER JOIN tblUsers B ON A.idUser = B.idUser
                           WHERE A.idBranch = " + idBranch;
            objCtrForm.query.CommandText = sql;
            objCtrForm.connection.Open();
            SqlDataReader sReader = objCtrForm.query.ExecuteReader();            
            while (sReader.Read())
            {
                listBranchUser.Add(
                    new tblUser
                    {
                        idUser = Convert.ToInt32(sReader["idUser"]),
                        name = Convert.ToString(sReader["name"]),
                        phone = Convert.ToString(sReader["phone"]),
                        email = Convert.ToString(sReader["email"])
                    }
                    );
            }
            objCtrForm.connection.Close();
            return View(listBranchUser);
        }

但是当我调用该函数时出现以下错误:

System.Data.SqlClient.SqlException:''=' 附近的语法不正确。'

在此处输入图像描述

我不明白为什么会这样,因为我在其他函数中执行了但我只调用了一个表,而不是两个。任何建议我都会感激。

标签: c#sql-serverasp.net-mvc

解决方案


我相信 C# 不会将整数隐式转换为字符串。

尝试更换

string sql = @"SELECT B.name, B.phone, B.email, B.idUser FROM tblBranchUser A
                           INNER JOIN tblUsers B ON A.idUser = B.idUser
                           WHERE A.idBranch = " + idBranch;

string sql = @"SELECT B.name, B.phone, B.email, B.idUser FROM tblBranchUser A
                           INNER JOIN tblUsers B ON A.idUser = B.idUser
                           WHERE A.idBranch = " + idBranch.ToString();

推荐阅读