我目前正在尝试将SQL Server中的数据集放入列表中,以便随后将其显示在页面上。老实说,我在这里看了很多答案,每一次不同的尝试都会使我遇到不同的错误。
根据我的阅读,这应该有效。ScriptList
是一个List
,应该具有的Add
功能。但是,事实并非如此。这是我目前的代码:
public ScriptList Index()
{
var scriptList = new ScriptList();
//List<ScriptItem> scriptlst = new List<ScriptItem>();
string connectionString = _configuration["ConnectionString:localhost"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
string statement = "SELECT ScriptGUID, ScriptName, ScriptDescription, DateAdded FROM dbo.Scropts;";
SqlCommand command = new SqlCommand(statement, connection);
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while(reader.Read())
{
scriptList.Add<ScriptItem>(new ScriptItem{GUID = Convert.ToString(reader["ScriptGUID"]),
Name = Convert.ToString(reader["ScriptName"]),
ShortDescription = Convert.ToString(reader["ScriptDescription"]),
DateAdded = Convert.ToDateTime(reader["DateAdded"])});
}
}
}
return scriptList;
} …
Run Code Online (Sandbox Code Playgroud) 我有一个DB表(比如学生),它有以下样本数据
Name ID Active admissionDate ReleaseDate Nationality
John 3572 1 06/02/2014 06/02/2018 0
Sandy 2748 1 06/02/2013 11/01/2016 1
Run Code Online (Sandbox Code Playgroud)
现在我要选择总共10000名学生.第一个条件是Active = 1(比如有7000个这样的学生).第二个条件是国籍= 1(其余3000名学生,所需学生总数为10K).全部由入场日期提交
我想在这里实现它应该总共10000名学生,但第一优先级将是活跃= 1,第二优先级将是国籍= 1.最初我选择第一个条件的学生并存储在临时表中.然后我从10000中扣除了临时表的数量,并选择剩余的具有第二个条件的学生并再次附加在临时表中.
但是我想在一个查询中实现它,因为原始表非常大并且占用了太多的执行时间.如果您需要更多说明,请告诉我.
我有一个包含类似数据的表格,我正在寻找一种方法将[city]和[street]字段组合成一个字段.[street]字段是[city]字段的子字符串,在[city]字段中找到总和预期结果如下:
city/street value1 value2 value3 total
Wien 16 50 6 72
Quadenstrabe 14 46 1 61
Laberlsteg 2 4 5 11
Hamburg 7 9 5 21
Esplanade 3 7 4 14
Drehbahn 4 2 1 7
Run Code Online (Sandbox Code Playgroud)
怎么在mssql中做到这一点?
CREATE TABLE [dbo].[#CITY_TABLE](
[city] NVARCHAR(50) NULL,
[street] NVARCHAR(50) NULL,
[value1] NVARCHAR(50) NULL,
[value2] NVARCHAR(50) NULL,
[value3] NVARCHAR(50) NULL,
[total] NVARCHAR(50) NULL
) ON [PRIMARY]
insert into [dbo].[#CITY_TABLE] values('Wien','Quadenstrabe','14','46','1','61')
insert into [dbo].[#CITY_TABLE] values('Wien','Laberlsteg','2','4','5','11')
insert into [dbo].[#CITY_TABLE] values('Hamburg','Esplanade','3','7','4','14')
insert into [dbo].[#CITY_TABLE] values('Hamburg','Drehbahn','4','2','1','7')
select * from …
Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据库:第一列是城市的名称。A,B和C是具有二进制数据1(是)和0(否)的列。
(数据库名称-D1)
City A B C
---- ------------ ----------- --------
Boston 1 1 1
Chicago 1 0 0
Boston 1 0 0
Boston 1 1 0
Chicago 1 1 0
Run Code Online (Sandbox Code Playgroud)
我想对这些城市进行分组,并在A,B和C列中为我提供1的计数,如下所示
City Count A Count B Count C
---- ------------ ----------- --------
Boston 3 2 1
Chicago 2 1 0
Run Code Online (Sandbox Code Playgroud)
以下代码将给我第一栏。有没有一种方法可以通过group by使用单个查询获取所有三列?
SELECT City, COUNT(A) as Count A
FROM D1
GROUP BY City
Where City.A = 1
Run Code Online (Sandbox Code Playgroud)