エラーコード : CS1069
型名 'SqlConnection' は名前空間 'System.Data.SqlClient' に見つかりませんでした。この型はアセンブリ 'System.Data.SqlClient, Version=4.6.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' に転送されました。このアセンブリへの参照を追加することを検討してください。
using System.Data.SqlClient
を記述しただけでは、SqlConnectionを利用できません。
この記事では、System.Data.SqlClientのパッケージをインポートして、SqlConnectionを利用できるようにする手順を紹介します。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DotNetCoreWindowsFormApp
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection();
}
}
}
System.Data.SqlClient
アセンブリには、SqlConnectionが含まれていないことが原因です。using Microsoft.Data.SqlClient
を追加するとビルドが通るようになります。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Data.SqlClient;
namespace DotNetCoreWIndowsFormAppMsSqlClient
{
public partial class FormExecSql : Form
{
public FormExecSql()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string constr = @"Data Source=192.168.0.nn;Initial Catalog=(接続するデータベース);Connect Timeout=60;Persist Security Info=True;User ID=(データベースのユーザー);Password=(パスワード);Encrypt=False";
SqlConnection connection = new SqlConnection(constr);
connection.Open();
try {
string sqlstr = "select * from ProductsB";
SqlCommand com = new SqlCommand(sqlstr, connection);
SqlDataReader sdr = com.ExecuteReader();
while (sdr.Read() == true) {
string model = ((string)sdr["model"]).Trim();
string name = ((string)sdr["name"]).Trim();
string category = ((string)sdr["category"]).Trim();
decimal price = (decimal)sdr["price"];
textBox1.Text += string.Format("{0} / {1} / {2} : {3:g} \r\n", model, name, category, price);
}
}
finally {
connection.Close();
}
}
}
}
System.Data.SqlClient
アセンブリを参照追加します。 <ItemGroup>
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
</ItemGroup>
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
</ItemGroup>
</Project>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DotNetCoreWindowsFormApp
{
public partial class FormExecSql : Form
{
public FormExecSql()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string constr = @"Data Source=(データベースサーバのホスト名 または IPアドレス);Initial Catalog=(接続先データベース名);Connect Timeout=60;Persist Security Info=True;User ID=(データベースへのログインID);Password=(データベースへのログインパスワード)";
using (SqlConnection con = new SqlConnection(constr)) {
SqlCommand com = new SqlCommand("select * from ProductsB", con);
con.Open();
SqlDataReader sdr = com.ExecuteReader();
while (sdr.Read() == true) {
textBox1.Text += string.Format("{0:d} {1} {2} {3}\r\n",
(int)sdr["id"], ((string)sdr["model"]).Trim(), ((string)sdr["name"]).Trim(), ((string)sdr["class"]).Trim());
}
sdr.Close();
con.Close();
}
}
}
}