Skip to content

Commit d30d9d1

Browse files
authored
Add | Feature: SqlBatch api (#1825)
1 parent 7f203dd commit d30d9d1

39 files changed

Lines changed: 3567 additions & 411 deletions
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// <Snippet1>
2+
using Microsoft.Data.SqlClient;
3+
4+
class Program
5+
{
6+
static void Main()
7+
{
8+
string str = "Data Source=(local);Initial Catalog=Northwind;"
9+
+ "Integrated Security=SSPI;Encrypt=False";
10+
RunBatch(str);
11+
}
12+
13+
static void RunBatch(string connString)
14+
{
15+
using var connection = new SqlConnection(connString);
16+
connection.Open();
17+
18+
var batch = new SqlBatch(connection);
19+
20+
const int count = 10;
21+
const string parameterName = "parameter";
22+
for (int i = 0; i < count; i++)
23+
{
24+
var batchCommand = new SqlBatchCommand($"SELECT @{parameterName} as value");
25+
batchCommand.Parameters.Add(new SqlParameter(parameterName, i));
26+
batch.BatchCommands.Add(batchCommand);
27+
}
28+
29+
// Optionally Prepare
30+
batch.Prepare();
31+
32+
var results = new List<int>(count);
33+
using (SqlDataReader reader = batch.ExecuteReader())
34+
{
35+
do
36+
{
37+
while (reader.Read())
38+
{
39+
results.Add(reader.GetFieldValue<int>(0));
40+
}
41+
} while (reader.NextResult());
42+
}
43+
Console.WriteLine(string.Join(", ", results));
44+
}
45+
}
46+
// </Snippet1>

doc/snippets/Microsoft.Data.Common/DbBatch.xml

Lines changed: 651 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
<Type Name="DbBatchCommand" FullName="System.Data.Common.DbBatchCommand">
2+
<TypeSignature Language="C#" Value="public abstract class DbBatchCommand" />
3+
<TypeSignature Language="VB.NET" Value="Public MustInherit Class DbBatchCommand" />
4+
<Base>
5+
<BaseTypeName>System.Object</BaseTypeName>
6+
</Base>
7+
<Interfaces />
8+
<Attributes>
9+
<Attribute FrameworkAlternate="net-8.0">
10+
<AttributeName Language="C#">[System.Runtime.CompilerServices.Nullable(0)]</AttributeName>
11+
<AttributeName Language="F#">[&lt;System.Runtime.CompilerServices.Nullable(0)&gt;]</AttributeName>
12+
</Attribute>
13+
<Attribute FrameworkAlternate="net-8.0">
14+
<AttributeName Language="C#">[System.Runtime.CompilerServices.NullableContext(1)]</AttributeName>
15+
<AttributeName Language="F#">[&lt;System.Runtime.CompilerServices.NullableContext(1)&gt;]</AttributeName>
16+
</Attribute>
17+
</Attributes>
18+
<Docs>
19+
<summary>
20+
Represents a single command within a <see cref="T:System.Data.Common.DbBatch" />. A batch can be executed against a data source in a single round trip.
21+
</summary>
22+
<remarks>To be added.</remarks>
23+
</Docs>
24+
<Members>
25+
<Member MemberName=".ctor">
26+
<MemberSignature Language="C#" Value="protected DbBatchCommand ();" />
27+
<MemberSignature Language="VB.NET" Value="Protected Sub New ()" />
28+
<MemberType>Constructor</MemberType>
29+
<Parameters />
30+
<Docs>
31+
<summary>
32+
Constructs an instance of the <see cref="T:System.Data.Common.DbBatchCommand" /> object.
33+
</summary>
34+
<remarks>To be added.</remarks>
35+
</Docs>
36+
</Member>
37+
<Member MemberName="CommandText">
38+
<MemberSignature Language="C#" Value="public abstract string CommandText { get; set; }" />
39+
<MemberSignature Language="VB.NET" Value="Public MustOverride Property CommandText As String" />
40+
<MemberType>Property</MemberType>
41+
<ReturnValue>
42+
<ReturnType>System.String</ReturnType>
43+
</ReturnValue>
44+
<Docs>
45+
<summary>Gets or sets the text command to run against the data source.</summary>
46+
<value>The text command to execute. The default value is an empty string ("").</value>
47+
<remarks>To be added.</remarks>
48+
</Docs>
49+
</Member>
50+
<Member MemberName="CommandType">
51+
<MemberSignature Language="C#" Value="public abstract System.Data.CommandType CommandType { get; set; }" />
52+
<MemberSignature Language="VB.NET" Value="Public MustOverride Property CommandType As CommandType" />
53+
<MemberType>Property</MemberType>
54+
<ReturnValue>
55+
<ReturnType>System.Data.CommandType</ReturnType>
56+
</ReturnValue>
57+
<Docs>
58+
<summary>
59+
Gets or sets how the <see cref="P:System.Data.Common.DbBatchCommand.CommandText" /> property is interpreted.
60+
</summary>
61+
<value>
62+
One of the enumeration values that specifies how a command string is interpreted. The default is <see langword="Text" />.
63+
</value>
64+
<remarks>To be added.</remarks>
65+
</Docs>
66+
</Member>
67+
<Member MemberName="DbParameterCollection">
68+
<MemberSignature Language="C#" Value="protected abstract System.Data.Common.DbParameterCollection DbParameterCollection { get; }" />
69+
<MemberSignature Language="VB.NET" Value="Protected MustOverride ReadOnly Property DbParameterCollection As DbParameterCollection" />
70+
<MemberType>Property</MemberType>
71+
<ReturnValue>
72+
<ReturnType>System.Data.Common.DbParameterCollection</ReturnType>
73+
</ReturnValue>
74+
<Docs>
75+
<summary>
76+
Gets the collection of <see cref="T:System.Data.Common.DbParameter" /> objects.
77+
</summary>
78+
<value>The parameters of the SQL statement or stored procedure.</value>
79+
<remarks>To be added.</remarks>
80+
</Docs>
81+
</Member>
82+
<Member MemberName="Parameters">
83+
<MemberSignature Language="C#" Value="public System.Data.Common.DbParameterCollection Parameters { get; }" />
84+
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Parameters As DbParameterCollection" />
85+
<MemberType>Property</MemberType>
86+
<ReturnValue>
87+
<ReturnType>System.Data.Common.DbParameterCollection</ReturnType>
88+
</ReturnValue>
89+
<Docs>
90+
<summary>
91+
Gets the collection of <see cref="T:System.Data.Common.DbParameter" /> objects. For more information on parameters, see [Configuring Parameters and Parameter Data Types](/dotnet/framework/data/adonet/configuring-parameters-and-parameter-data-types).
92+
</summary>
93+
<value>The parameters of the SQL statement or stored procedure.</value>
94+
<remarks>To be added.</remarks>
95+
</Docs>
96+
</Member>
97+
<Member MemberName="RecordsAffected">
98+
<MemberSignature Language="C#" Value="public abstract int RecordsAffected { get; }" />
99+
<MemberSignature Language="VB.NET" Value="Public MustOverride ReadOnly Property RecordsAffected As Integer" />
100+
<MemberType>Property</MemberType>
101+
<ReturnValue>
102+
<ReturnType>System.Int32</ReturnType>
103+
</ReturnValue>
104+
<Docs>
105+
<summary>
106+
Gets the number of rows changed, inserted, or deleted by execution of this specific <see cref="T:System.Data.Common.DbBatchCommand" />.
107+
</summary>
108+
<value>The number of rows changed, inserted, or deleted. -1 for SELECT statements; 0 if no rows were affected or the statement failed.</value>
109+
<remarks>To be added.</remarks>
110+
</Docs>
111+
</Member>
112+
</Members>
113+
</Type>

0 commit comments

Comments
 (0)