最近做项目老大要求用到sqlserver,但是这项目的数据库只是本地演示用并不复杂,于是决定试试VisualStudio2013内置的SQLServer。对于这个东西的了解并没有多少,然后项目初学习的资料好少(可能是我搜索方式不对),这文章就当抛砖之作吧,话不多说现在开始:
首先我查阅了一些资料,但是很多都是sqlserver而不是vs内置的那个,所以似乎很难找到适合的资料,不过我找到了两篇MSDN也就是微软的简单入门的,上链接:
https://msdn.microsoft.com/zh-cn/library/ms233763.aspx
https://msdn.microsoft.com/zh-cn/library/ms171890.aspx
第一篇是教用vs内置的Service-based Database 建立一个简单的.mdf文件,这就是一个数据库文件(Microsoft SQL Server Database File),跟着教程做,创建的过程不想mysql一样是cmd输入命令(我没用过mysql的GUI),都是在GUI上操作的
第二篇是用winform去连接第一篇创建的.mdf文件,然后添加完后可以直接以控件形式显示,但是教程就到此为止了,我要的并不是直接显示数据啊,我需要的是在C#的WPF中实现对数据库的增删改查啊,就是输入个id,从数据库中找到个对应名字给我之类的操作,所以还要继续找方法。
然后我找到了这篇文章:
http://wulin9005.blog.163.com/blog/static/13239748820133135526616/
作者跟我一样懒得去下sqlserver(逃~),然后这里教会了我在vs中连接自己电脑作为server,不过第二步大家的服务器名可能不一样,我的解决方法是:
在VS--TOOLS--Options(最下)中,搜索sql server
点Database Tools--Data Connections
SQL Server Instance Name下方的TextBox中就是你电脑Server的名字,我没改hhh
继续进行第三步就能得到名为"master"的数据库,
接着就在Tables处右键添加新表,具体如下:
可以跟我一样也可以参考microsoft的第一个链接,这样表就创建完毕了
然后是对表添加数据,对Tables下的tb_card右键Show Table Data(显示表数据),然后*添加
好的这样就添加完数据了
接下来就是如何在代码中取得数据了,
首先在VS的VIEW--Other windows--Data Sources 中点击Add new Data Source,在Choose a Data Source Type中选Database-->next,在choose a database model中选择Dataset-->next,在Choose Your Data Connection中点击右边的New Connection,在弹出的Add Connection中点击Data source右边的按键change,然后选中Microsoft SQL Server并点击OK:
然后会有add Connection弹框如下,ServerName上面提到了用自己的,输入完可以用左下角的Test试一下连接:
成功之后就会回到choose your data connection,然后下拉框就多了一个可以选的:
选中并next,next,到了Choose your database objects,勾选tables,然后Finish,剩下都确认就行
然后server的Data Connections就会出现:
连接也完成了,最后就是创建WPF
比较简陋hhh,三个textbox分别对应cardid、username、cardType,
combobox用来选择数据库,右边btn_refresh用来首次连接并刷新数据库列表到combobox中:
#region 按键刷新数据库列表
private void btn_refresh_Click(object sender, RoutedEventArgs e)
{
DataTable t = new System.Data.DataTable();
string con = "server=(LocalDB)\\v11.0;database=master;integrated security=true";
try
{
using (SqlConnection myCon = new SqlConnection(con))
{
myCon.Open();
MessageBox.Show("打开数据库成功");
string sql = "select * from sys.databases ";
using (SqlCommand cm = new SqlCommand(sql, myCon))
{
SqlDataAdapter a = new SqlDataAdapter(cm);
a.Fill(t);
foreach (DataRow r in t.Rows)
{
cb_database.Items.Add(r["name"].ToString());
} }
}
}
catch (Exception ex)
{
MessageBox.Show("数据库打开失败,详细信息:" + ex.ToString());
}
}
#endregion
刷新完成后,在第一个textbox输入123,然后点击btn_open,另外两个textbox将会显示对应数据,btn_open代码如下:
#region open点击
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
if (cb_database.Text.Trim().Length > )
{
string con = "server=(LocalDB)\\v11.0;database=" + cb_database.Text.Trim() + ";integrated security=true";
using (SqlConnection myCon = new SqlConnection(con))
{
string sql = "select userName,cardType from tb_card where cardID='" + tb_id.Text + "'";
using (SqlCommand cmd = new SqlCommand(sql, myCon))
{
myCon.Open();
MessageBox.Show("连接数据库成功" + ",ServerVersion:" + myCon.ServerVersion + ";DataSource" + myCon.DataSource);
using (SqlDataReader sdr = cmd.ExecuteReader())
{
if (sdr.Read())
{
string userName = sdr.GetString().ToString();
string cardType = sdr.GetString().ToString();
tb_name.Text = userName;
tb_type.Text = cardType;
}
else
{
MessageBox.Show("gg");
}
}
} }
}
else
{
MessageBox.Show("请选择要连接的数据库");
}
}
catch (Exception ex)
{
MessageBox.Show("数据库连接失败,详细信息:" + ex.ToString());
}
}
#endregion
完结撒花~如果有神马意见建议欢迎留言谢谢~