c# - 系统.Data.SqlClient.SqlException (0x80131904) : Incorrect syntax near '.'

标签 c# sql-server

我正在尝试填充更多信息以使银行对帐单包含更多信息,因此我决定加入两个表。此查询适用于 SQL 管理工作室。但如果我在 Visual Studio 中使用创建查询和显示数据,它会发送此异常错误

System.Data.SqlClient.SqlException(0x80131904) : Incorrect syntax near '.'.

第 62 行

我的代码是这样的:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;

namespace TmpZ
{
    public partial class BalanceSheet : Form
    {
        string constring = ConfigurationManager.ConnectionStrings["ConnData"].ConnectionString;
        public BalanceSheet()
        {
            InitializeComponent();
        }

        private void BalanceSheet_Load(object sender, EventArgs e)
        {

        }

        private void reportViewer1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (accountNo1.Text == "")
            {
                MessageBox.Show("Please Enter Account Number");
            }
            else
            {
                DataTable dtb = new DataTable();
                dtb = GenerateBankStatement(dtb);
                reportViewer1.LocalReport.DataSources.Clear();
                ReportDataSource rpd = new ReportDataSource("DataSet1", dtb);
                reportViewer1.LocalReport.DataSources.Add(rpd);
                reportViewer1.RefreshReport();
            }
        }

        private DataTable GenerateBankStatement(DataTable dt)
        {
            using (SqlConnection cn = new SqlConnection(constring))
            {
                try
                {
                    string dateF = Convert.ToDateTime(dateFrom.Text).ToString("dd-MM-yyyy");
                    string dateT = Convert.ToDateTime(dateTo.Text).ToString("dd-MM-yyyy");
                    //SqlDataAdapter da = new SqlDataAdapter("SELECT [id] as id, [transaction_desc] as transaction_desc,[credit] as credit, [debit] as debit, [balance] as balance, [transaction_date] as transaction_date FROM transactions WHERE(accountNo1 = '" + accountNo1.Text + "') AND(transaction_date BETWEEN '" + dateF + "' AND '" + dateT + "')", cn);
                    //SqlDataAdapter da = new SqlDataAdapter("SELECT [id] as id, [transaction_desc] as transaction_desc,[credit] as credit, [debit] as debit, [balance] as balance, [transaction_date] as transaction_date FROM transactions WHERE(accountNo1 = '" + accountNo1.Text + "')", cn);
                    SqlDataAdapter da = new SqlDataAdapter("SELECT [fullname] as account_info.fullname, [accountNo] as account_info.accountNo, [ccy] as account_info.ccy, [address] as account_info.address, [id] as transactions.id, [transaction_desc] as transactions.transaction_desc, [credit] as transactions.credit, [debit] as transactions.debit, [balance] as transactions.balance, [transaction_date] as transactions.transaction_date FROM  transactions CROSS JOIN account_info WHERE(account_info.accountNo = '" + accountNo1.Text + "') AND(transactions.transaction_date BETWEEN '" + dateF + "' AND '" + dateT + "')", cn);
                    da.Fill(dt);
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            return dt;
        }
    }
}

第 62 行显示了 SQLDataAdapter。我做错了什么?

最佳答案

你不能在别名中使用 .

SELECT [fullname] as account_info.fullname

我相信这就是你想要的

SELECT account_info.fullname as [fullname]

关于c# - 系统.Data.SqlClient.SqlException (0x80131904) : Incorrect syntax near '.' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48336155/

相关文章:

c# - WCF 休息 : What is it expecting my XML to look like in requests?

sql-server - SQL Server 是否保证标识列的顺序插入?

sql - 查询以查找今天和昨天的数据以及伪列之间的差异

sql - 为什么 SQL Server 使用无效样式将 VARCHAR 转换为 DATETIME?

c# - 如何在 wpf MVVM 中选择文本框的文本

c# - List<T> 和 ArrayList<T> 哪个更快?

c# - 微软如何从 silverlight 中赚钱? Adobe 如何从 Flash 中赚钱? C#

c# - 如何只从sql server获取日期

sql-server - SQL Server : SELECT only the rows with MAX(DATE)

c# - Json.NET 仅输出 C# 中的值