c# - 错误:CS1009:无法识别的转义序列
问题描述
我是编码新手,我尝试使用 SQL Server 数据库创建登录表单,但由于某种原因,它没有注册它。
我直接从我的 SQL Server 名称中获取数据源。谁能告诉我我做错了什么?
我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection.Emit;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;
using Opgave.Models;
using System.Data.SqlClient;
namespace Opgave.Controllers
{
public class UserController : Controller
{
SqlConnection con = new SqlConnection();
SqlCommand com = new SqlCommand();
SqlDataReader dr;
// GET: User
[HttpGet]
public ActionResult Login()
{
return View();
}
void connectionString()
{
con.ConnectionString = "data source=LAPTOP-UMVUL6BV\SQLEXPRESS; database=SkoleNavn; integrated security=SSPI;";
}
[HttpPost]
public ActionResult Verify(UserLogin2 Acc)
{
connectionString();
con.Open();
com.Connection = con;
com.CommandText = "select * from UserLogin where Email='"+Acc.email+"' and Password='"+Acc.password+"'";
dr = com.ExecuteReader();
if (dr.Read())
{
con.Close();
return View("Index");
}
else
{
con.Close();
return View("Index");
}
}
}
}
解决方案
如注释中所述,C# 允许您将字符组合写入字符串,并且在编译器处理代码时它们将被解释为其他字符:
string containsNewline = "abc\ndef";
string containsTab = "abc\tdef";
在实际编译的程序中,这两个字符串都会以 7 个字符结尾;一个包含换行符,另一个包含选项卡。\n
and被\t
称为转义序列 - 斜线开始它,下一个字符指示结果将是什么。
你放了一串:
con.ConnectionString = "data source=LAPTOP-UMVUL6BV\SQLE
^^
编译器错误告诉您“我不知道转义序列表示的任何字符backslash-S
”
"
因为它根本不是您要使用的转义序列,而是文字斜线后跟文字 S,所以您必须通过在字符串分隔符之前放置 @ 来关闭转义:
con.ConnectionString = @"data source=LAPTOP-UMVUL6BV\SQLE
或者您让转义机制处于活动状态,但使用\\
这意味着“第一个斜杠开始转义解释,下一个字符(也是一个斜杠)意味着“将文字\
字符放入字符串中。因此在处理转义后两者\\
合二为一\
con.ConnectionString = "data source=LAPTOP-UMVUL6BV\\SQLE
推荐阅读
- django - 石墨烯订阅错误(没有属性“执行”)
- c# - 具有两个依赖服务的循环依赖
- react-native - react-native 矢量图标动态背景
- javascript - 如何进行授权或加密 URL?
- python - 类型错误:python 中的预期字符串或类似字节的对象
- python - 如何为 BTC 汇集 PairCreated 事件?
- c# - 选择时如何自动采用 MenuItemIcon 作为按钮标题?
- javascript - 如何在 react-native 中使用另一个组件的变量
- python - 如何计算最长的不间断日期序列
- javascript - 单击菜单项时 Ant Design 子菜单折叠