WPF – Local SQL Database
- WPF Create and Work with Local SQL Database in your Project
- Walkthrough: Display data from a SQL Server database in a DataGrid control
1. WPF Create and Work with Local SQL Database in your Project
https://www.youtube.com/watch?v=_1Hdk5pi8C4
1. mdf 데이터베이스 추가
Add New Item-> Service Based Database
2. 테이블 추가
Database-> Tables-> Add New Table
3. 테이블 작성
CREATE TABLE [dbo].[Table]
(
[IDDetail] INT NOT NULL PRIMARY KEY,
[URL] NVARCHAR(255) NULL,
[Title] NVARCHAR(255) NULL,
[Text] NVARCHAR(MAX) NULL
)
// t-sql 스크립트 에서 테이블을 변경하면 데이터를 완전히 지우게 되므로, 디자인 영역에서 바꿔야 한다.
4. 변경사항 저장
왼쪽 상단에 Update 버튼을 눌러서 변경사항을 저장한다.
5. 테이블 이름 변경
t-sql 스크립트에서 테이블의 이름을 변경하면 복사본이 생성된다.
6. Connection string to the database
// Database-> Properties
예) Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C..\_data\dbWebRobot_ComputerFutures.mdf;Integrated Security=True
7. 데이터 업데이트
private void db_Update_Add_Record(string sURL, string sTitle)
{
sURL = sURL.Replace("'", "''");
sTitle = sTitle.Replace("'", "''");
string sSQL = "SELECT TOP 1 * FROM tbl_Details WHERE [URL] Like '" + sURL + "'";
DataTable tbl = clsDB.Get_DataTable(sSQL);
if (tbl.Rows.Count == 0)
{
string sql_Add = "INSERT INTO tbl_Details ([URL],[Title],[dtScan]) VALUES('" + sURL + "','" + sTitle + "',SYSDATETIME())";
clsDB.Execute_SQL(sql_Add);
}
else
{
string ID = tbl.Rows[0]["IDDetail"].ToString();
string sql_Update = "UPDATE tbl_Details SET [dtScan] = SYSDATETIME() WHERE IDDetail = " + ID;
clsDB.Execute_SQL(sql_Update);
}
}
8. 데이터베이스 클래스
public static class clsDB
{
public static SqlConnection Get_DB_Connection()
{
string cn_String = Properties.Settings.Default.connection_String;
SqlConnection cn_connection = new SqlConnection(cn_String);
if (cn_connection.State != ConnectionState.Open) cn_connection.Open();
return cn_connection;
}
public static DataTable Get_DataTable(string SQL_Text)
{
SqlConnection cn_connection = Get_DB_Connection();
DataTable table = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(SQL_Text, cn_connection);
adapter.Fill(table);
return table;
}
public static void Execute_SQL(string SQL_Text)
{
SqlConnection cn_connection = Get_DB_Connection();
SqlCommand cmd_Command = new SqlCommand(SQL_Text, cn_connection);
cmd_Command.ExecuteNonQuery();
}
public static void Close_DB_Connection()
{
string cn_String = Properties.Settings.Default.connection_String;
SqlConnection cn_connection = new SqlConnection(cn_String);
if (cn_connection.State != ConnectionState.Closed) cn_connection.Close();
}
}
2. Walkthrough: Display data from a SQL Server database in a DataGrid control