当前位置: 首页 > 知识库问答 >
问题:

system.data.sqlclient.sqlException:关键字“from”附近语法不正确

南门洋
2023-03-14
//2nd - Setup SQL Command
    SqlCommand cmd = new SqlCommand("SELECT [IDTip], [Date], CONVERT(nvarchar(100),[Date], 1) AS Released, [Title], [Image], REPLACE(CONVERT (nvarchar(MAX),[Tip]), '</p>\r\n\r\n<p>', '<p></p>') AS ContentConverted, Recognition, FROM tips WHERE IDTip =" + Request.QueryString["IDTip"], new SqlConnection(HealthReachConString));

//3rd - Attempt to open the connection to the DB
    cmd.Connection.Open();

//4th - Go and fetch some data and apply it to our controls
    SqlDataReader objReader = cmd.ExecuteReader();
    while (objReader.Read())
    {
        lblDate.Text = objReader.GetString(2);
        lblTitle.Text = objReader.GetString(4);
        lblTip.Text = Convert.ToString(objReader["ContentConverted"]);
        imgContentPicture.ImageUrl = "~/files/Health_Tips/" + objReader.GetString(5);
        if (objReader.GetString(5) == " " || objReader.GetString(5) == "")
        {
            imgContentPicture.Visible = false;
        }
        else
        {
            imgContentPicture.Visible = true;
        }

    }
    objReader.Close();
    cmd.Connection.Close();

堆栈跟踪:

[SqlException(0x80131904):关键字“from”附近语法不正确。]
System.Data.sqlclient.sqlConnection.onerror(SqlException exception,Boolean breakConnection,Action`1 wrapCloseInAction)+1791910
System.Data.sqlClient.SqlInternalConnection.onerror(SqlException,Boolean breakConnection,Action`1 wrapCloseInAction)+5347106 tdsparser.tryrun(RunBehavior RunBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdSparSerStateObj、Boolean&dataReady)+1693
System.data.sqlClient.SqlDataReader.tryConsumemetadata()+61
System.data.sqlClient.SqlDataReader.get_metadata()+90 sqlcommanD.runExecuteReaderTDS(CommandBehavior cmdBehavior,RunBehavior RunBehavior,Boolean returnStream,Boolean async,Int32超时,task&task,Boolean async,Boolean async,Boolean async,SqlDataReader ds)+1421
System.data.sqlclient.sqlCommand.RunExecuteReader(CommandBehavior cmdBehavior RunBehavior RunBehavior RunBehavior.data.sqlclient.sqlcommand.executeReader(CommandBehavior行为,字符串方法)+137
system.data.sqlclient.sqlcommand.executeReader()+99
pressroom_detail.page_load(对象发送者,事件Args e)中的e:\web\healthreach\htdocs\tips_detail.aspx.cs:25
system.web.util.CallieventHandlerdelegateProxy.callback(对象发送者,事件Args ecursive()+54
system.web.ui.page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+772

你知道怎么回事吗?

共有1个答案

梁丘扬
2023-03-14

为了澄清您的问题,额外的逗号向SQL指示存在另一个参数,但是您的参数是您的from。一旦从中删除前的逗号,您的语法就应该有效。假设您已经为convertalias函数指明了正确的语法。

我还想指出您的查询容易出现SQL注入。要解决这一部分,您应该做以下工作:

SELECT [IDTip], [Date], 
CONVERT(nvarchar(100),[Date], 1) AS Released, [Title], [Image], 
REPLACE(CONVERT (nvarchar(MAX),[Tip]), '</p>\r\n\r\n<p>', '<p></p>') AS [ContentConverted], [Recognition]
FROM [Tips]
WHERE ([IDTip] = @Id);

这就是我在评论中看到的查询错误。

 类似资料:
  • 我不熟悉SQL和visual studio等,但我改变了一些不允许我登录应用程序的内容。每当我按下登录按钮时,就会出现此错误 关键字“from”附近的语法不正确 这就是源头所在;

  • 当我输入用户名和密码时,我收到了这个错误消息,我不知道这个错误是什么,我如何修复它。错误消息是: 关键字from附近的语法不正确。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:系统。数据SqlClient。SqlException:关键字“from”附近的语法不正确。 源错误: 第30行:Sql命令cmd=new Sq

  • 问题内容: 您好,我试图弄清楚为什么在MSSQL中将兼容模式从80切换为100会破坏下面的功能? 这是我的功能: 问题答案: 尝试在with前面加一个半冒号: 给这篇文章读明白,为什么你需要做到这一点。尖刺: 但是,如果CTE不是批处理中的第一条语句,则必须在WITH关键字之前加上分号。作为一种最佳实践,我宁愿在所有CTE前面加上分号,以使这种一致的方法比记住我是否需要分号更容易。 就个人而言,我

  • 问题内容: 你好,我试图弄清楚为什么我有这个错误 关键字“表格”附近的语法不正确。 提前Thx 代码 : 问题答案: 发生这种情况是因为TABLE是T-SQL的保留关键字。 如果您确实需要使用该名称,则查询应将TABLE括在方括号中 我强烈建议更改该名称,并对该表的内容使用更具描述性的词

  • 请帮我找出这个错误的原因 代码如下: