SQL Server 2022 : Use with C#2023/12/15 |
|
This is an example to use SQL Server with C#.
|
|
| [1] | This is based on the environment Microsoft .NET has been installed. |
|
debian@dlp:~$ dotnet --version 7.0.404 debian@dlp:~$ dotnet new console -o MssqlTest Welcome to .NET 7.0! --------------------- SDK Version: 7.0.404 Telemetry --------- The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell. Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry ---------------- Installed an ASP.NET Core HTTPS development certificate. To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). Learn about HTTPS: https://aka.ms/dotnet-https ---------------- Write your first app: https://aka.ms/dotnet-hello-world Find out what's new: https://aka.ms/dotnet-whats-new Explore documentation: https://aka.ms/dotnet-docs Report issues and find source on GitHub: https://github.com/dotnet/core Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli -------------------------------------------------------------------------------------- The template "Console App" was created successfully. Processing post-creation actions... Restoring /home/debian/MssqlTest/MssqlTest.csproj: Determining projects to restore... Restored /home/debian/MssqlTest/MssqlTest.csproj (in 69 ms). Restore succeeded.debian@dlp:~$ cd MssqlTest
debian@dlp:~/MssqlTest$
vi MssqlTest.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
# add
<ItemGroup>
<PackageReference Include="System.Data.SqlClient" Version="4.4.0" />
</ItemGroup>
</Project>
|
| [2] | This is a basic usage example of SQL Server on C#. |
|
# sample database for testing debian@dlp:~$ sqlcmd -S localhost -U debian -d SampleDB3 -Q 'select * from dbo.SampleTable;'
Password:
ID First_Name Last_Name
----------- ------------------- ---------------------
1 Ubuntu Linux
2 Debian Linux
3 RedHat RHEL 9 Plow
(3 rows affected)
debian@dlp:~$ cd MssqlTest
debian@dlp:~/MssqlTest$
vi Program.cs
using System;
using System.Text;
using System.Data.SqlClient;
namespace SqlServerSample
{
class Program
{
static void Main(string[] args)
{
try
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "127.0.0.1";
builder.UserID = "debian";
builder.Password = "P@ssw0rd01";
builder.InitialCatalog = "SampleDB3";
Console.Write("Connecting to SQL Server... ");
using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
{
connection.Open();
Console.WriteLine("Done.");
StringBuilder sb = new StringBuilder();
// Select data from SampleTable
Console.WriteLine("Reading data from SampleTable...");
String sql = "select * from SampleTable;";
using (SqlCommand command = new SqlCommand(sql, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(
"{0} {1} {2}",
reader.GetInt32(0),
reader.GetString(1),
reader.GetString(2)
);
}
}
}
// Insert data into SampleTable
Console.Write("\r\nInserting into SampleTable...\r\n");
sb.Clear();
sb.Append("insert SampleTable (First_Name, Last_Name) ");
sb.Append("values (@first_name, @last_name);");
sql = sb.ToString();
using (SqlCommand command = new SqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@first_name", "Windows");
command.Parameters.AddWithValue("@last_name", "Microsoft");
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) inserted");
}
// Update data in SampleTable
String userToUpdate = "Ubuntu";
Console.Write("\r\nUpdating 'Last_Name' for user " + userToUpdate + "\r\n");
sb.Clear();
sb.Append("update SampleTable set Last_Name = N'Jammy' where First_Name = @first_name");
sql = sb.ToString();
using (SqlCommand command = new SqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@first_name", userToUpdate);
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) updated\r\n");
}
sql = "select * from SampleTable;";
using (SqlCommand command = new SqlCommand(sql, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(
"{0} {1} {2}",
reader.GetInt32(0),
reader.GetString(1),
reader.GetString(2)
);
}
}
}
// Delete data in SampleTable
String userToDelete = "Windows";
Console.Write("\r\nDeleting user '" + userToDelete + "'\r\n");
sb.Clear();
sb.Append("delete from SampleTable where First_Name = @first_name;");
sql = sb.ToString();
using (SqlCommand command = new SqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@first_name", userToDelete);
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected + " row(s) deleted");
}
}
}
catch (SqlException e)
{
Console.WriteLine(e.ToString());
}
}
}
}
dotnet restore Determining projects to restore... Restored /home/debian/MssqlTest/MssqlTest.csproj (in 3.87 sec).debian@dlp:~/MssqlTest$ dotnet run Connecting to SQL Server... Done. Reading data from SampleTable... 1 Ubuntu Linux 2 Debian Linux 3 RedHat RHEL 9 Plow Inserting into SampleTable... 1 row(s) inserted Updating 'Last_Name' for user Ubuntu 1 row(s) updated 1 Ubuntu Jammy 2 Debian Linux 3 RedHat RHEL 9 Plow 6 Windows Microsoft Deleting user 'Windows' 1 row(s) deleteddebian@dlp:~/MssqlTest$ sqlcmd -S localhost -U debian -d SampleDB3 -Q 'select * from dbo.SampleTable;'
Password:
ID First_Name Last_Name
----------- -------------------- -----------------------
1 Ubuntu Jammy
2 Debian Linux
3 RedHat RHEL 9 Plow
(3 rows affected)
|
| Sponsored Link |
|
|