热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Can'tseemtogetaDataReadertoworkinC#/SQLServer

Ihavethiscode:我有这个代码:stringstrConnectServerDESKTOP-2Q73COU\\SQLEXPRESS;DatabaseLoginApp

I have this code:

我有这个代码:

string strCOnnect= "Server=DESKTOP-2Q73COU\\SQLEXPRESS;Database=LoginApp;Trusted_COnnection=True;";
SqlConnection cOnn= new SqlConnection(strConnect);
conn.Open();

MessageBox.Show("Connected to SSMS.");

string loadMainInfo = "SELECT * FROM Main_Information WHERE Username = " + Globals.username;

SqlCommand cmd = new SqlCommand(loadMainInfo, conn);

SqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())
{
    lblStanding.Text = (dr["Standing"].ToString());
    lblName.Text = (dr["First Name"].ToString()) + " " + (dr["Last Name"].ToString());
    lblTotalHours.Text = (dr["Total_hours"].ToString());
    lblType.Text = (dr["Degree_type"].ToString());
    lblDegree.Text = (dr["Degree"].ToString());
    lblCurrentHours.Text = (dr["Current_hours"].ToString());
}

Specifically this line:

特别是这一行:

string loadMainInfo = "SELECT * FROM Main_Information WHERE Username = " + Globals.username;

If I replace the end of that line with:

如果我用以下内容替换该行的结尾:

Username = testuser"

The code will work fine and all labels below will be populated with the corresponding info from the tables where Username = testuser. However, if the user logs in with their username and the code is using the original line, I get this error:

代码将正常工作,下面的所有标签将填充Username = testuser表中的相应信息。但是,如果用户使用其用户名登录并且代码使用的是原始行,则会收到以下错误:

System.Data.SqlClient.SqlException: 'Incorrect syntax near '='.'

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

Any help?

4 个解决方案

#1


1  

use a SqlParameter to do it as :

使用SqlParameter来执行以下操作:

string loadMainInfo = "SELECT * FROM Main_Information WHERE Username = @paramName"'; 
SqlParameter param1 = new SqlParameter () ; 
param1.ParameterName="@paramName";
param1.SqlDbType= SqlDbType.Varchar;
param1.Value= Globals.username;
cmd.Parameters.Add(param1);

#2


0  

You have make a wrong query, add the quote as this

您已经进行了错误的查询,请添加引号

string loadMainInfo = "SELECT * FROM Main_Information WHERE Username = '" + Globals.username + "'";

#3


0  

You could use String.Format

你可以使用String.Format

string loadMainInfo = String.Format(“SELECT * FROM Main_Information WHERE Username = {0}" ,Globals.username);

#4


0  

It looks like Globals.username may not have a value when you're referencing it for your query string, as the SQL error you're getting occurs when there is nothing following the = in the query.

当您为查询字符串引用它时,看起来Globals.username可能没有值,因为当查询中的=后面没有任何内容时,会出现SQL错误。

I'd suggest using the debugger to look at the value of loadMainInfo just after its been set (or otherwise add the line MessageBox.Show(loadMainInfo); below).

我建议使用调试器在设置之后查看loadMainInfo的值(或以其他方式添加行MessageBox.Show(loadMainInfo);下面)。

Does the query string include the username value you expect?

查询字符串是否包含您期望的用户名值?


推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • oracle恢复失败,RMAN数据库恢复失败解决一例
    问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
  • 【Mysql】九、Mysql高级篇 索引
    MYSQL索引一、什么是索引?二、索引数据结构1、mysql数据库的四种索引2、BTREE结构三、索引分类、创建索引、查看索引1、单值索引2、复合索引3、函数索引4、 ... [详细]
  • 前一天学习了视图按键事件的监听。首先新建了一个自定义的视图,在自定义视图中,重新编了其构造函数和onDraw()方法。之后将该视图用于应用程序,最后添加该视图的按键监听器,在监听器中对KeyEvent ... [详细]
author-avatar
手机用户2602889575
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有