Skip to content

Commit 2da1535

Browse files
committed
ExecuteScalar method is added.
1 parent 4735e9b commit 2da1535

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

DirectSQL/Database.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,34 @@ public static int ExecuteNonQuery(
122122
}
123123

124124

125+
public static object ExecuteScalar(
126+
string sql,
127+
IDbConnection connection,
128+
IDbTransaction transaction)
129+
{
130+
return ExecuteScalar(sql, new ValueTuple<String, object>[0], connection, transaction);
131+
}
132+
133+
134+
public static object ExecuteScalar(
135+
string sql,
136+
(String, object)[] parameters,
137+
IDbConnection connection,
138+
IDbTransaction transaction)
139+
{
140+
using (var command = connection.CreateCommand())
141+
{
142+
command.Transaction = transaction;
143+
144+
command.CommandText = sql;
145+
SetParameters(command, parameters);
146+
147+
return command.ExecuteScalar();
148+
149+
}
150+
}
151+
152+
125153
public static int ExecuteNonQuery(
126154
string sql,
127155
IDbConnection connection,
@@ -131,6 +159,7 @@ public static int ExecuteNonQuery(
131159
}
132160

133161

162+
134163
public static void Query(
135164
string sql,
136165
(String, object)[] parameters,

TestSqlLiteDatabase/QueryTest.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,21 @@ public void TestQuery()
7373
}
7474
);
7575

76+
var abcdef = SqlLiteDatabase.ExecuteScalar(
77+
"select TEST_VAL1 from TEST_TABLE",
78+
connection,
79+
transaction
80+
);
81+
Assert.AreEqual(abcdef, "abcdef");
82+
83+
var abcdef2 = SqlLiteDatabase.ExecuteScalar(
84+
"select TEST_VAL1 from TEST_TABLE where TEST_VAL1 = @val1",
85+
new (String, object)[] { ValueTuple.Create("@val1", "abcdef") },
86+
connection,
87+
transaction
88+
);
89+
Assert.AreEqual(abcdef2, "abcdef");
90+
7691
});
7792
}
7893

0 commit comments

Comments
 (0)