我正在尝试制作一些文字,但文字没有显示......
这是我的代码:
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)
);
答案 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();