SQL Server命令不显示结果

时间:2018-02-25 01:39:20

标签: c# asp.net sql-server

我正在尝试制作一些文字,但文字没有显示......

这是我的代码:

SqlCommand getLeastId = new SqlCommand("SELECT Id FROM [Chat-main] WHERE Userid LIKE @id AND Sendtoid LIKE @toid", c);

getLeastId.Parameters.AddWithValue("@id", (string)Session["CurentUserid"]);
getLeastId.Parameters.AddWithValue("@toid", (string)Session["contactuserid"]);

c.Open();

SqlDataReader reader = getLeastId.ExecuteReader();

if (reader.HasRows)
    while (reader.Read())
        CreateDiv((int)reader[0]);

c.Close();

create div函数正在运行。

谢谢你们的帮助

我的表结构:

CREATE TABLE [dbo].[Chat-main] 
(
    [Id]       INT          IDENTITY (1, 1) NOT NULL,
    [tag]      VARCHAR(50)  NOT NULL,
    [commet]   VARCHAR(MAX) NOT NULL,
    [Userid]   VARCHAR(MAX) NOT NULL,
    [Sendtoid] VARCHAR(MAX) NOT NULL,

    PRIMARY KEY CLUSTERED ([Id] ASC)
);

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。

1- LIKE无法与integer一起使用,它仅适用于字符串类型。如果您仍然需要,可以将INT转换为VARCHAR,如下所示。

 CAST(ID AS VARCHAR(9)) LIKE '%123'
用于LIKE

2- Sendtoid也不正确,应该如下。

 getLeastId.Parameters.AddWithValue("@toid"
 , "%" +  (string)Session["contactuserid"] + "%");

您可以更改以下代码。

 SqlCommand getLeastId = new SqlCommand("SELECT Id FROM [Chat-main] Where Userid = @id AND Sendtoid like @toid", c);
            getLeastId.Parameters.AddWithValue("@id", (string)Session["CurentUserid"]);
            getLeastId.Parameters.AddWithValue("@toid", "%" + (string)Session["contactuserid"] + "%");
            c.Open();
            SqlDataReader reader = getLeastId.ExecuteReader();
            if (reader.HasRows)
                while (reader.Read())
                    CreateDiv((int)reader[0]);
            c.Close();