C#数据库开发

来源:互联网 发布:cobweb算法 编辑:程序博客网 时间:2024/05/14 14:07

好长时间没有写博客了,最近一直很堕落!哎,事情很多,无心学术啊。最近转C#,用了短时间,发现用C#做界面非常非常的简单。现在做点c#相关的数据库开发!

想总结下出现的问题:

1.“出现不支持关键字provide”  看的书上的历程报错比较奇怪,后来发现我数据库用的是access,用的命名控件用成了SqlClient命名空间了。连接字符串还不太一样。

总结下:SQLServer 数据库提供程序,位于Systerm.Data.SqlClient命名空间

ODBC 数据提供程序,位于Systerm.Data.Odbc

OLEDB 数据提供程序,位于Systerm.Data.OleDb命名空间   Acess用这个

          Oracle数据提供程序,位于Systerm.Data.OracleClient命名空间

.数据库插入操作

@@identity是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。select @@identity,在access或sql server中都有效.

  例如:有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。

如以下SQL语句:

string sql="insert into users values('admin','admin','男');select @@Identity";//sql语句拼装在一起执行,等于是先执行插入操作,然后返回所插入的数据的id

这条sql语句直接 用sqlcommand的ExecuteScalar方法执行 会返回所插入的数据的的id号

3. 用户‘sa’登录失败;

今天遇到sql数据库登录失败,网上找了半天的原因,这一问题一般是由于SQL Server未集成Windows身份验证导致的最后解决了方法如下:

  1) 打开SQL Server企业管理器。

  2) 选择服务器名称上右键选择“编辑SQL Server注册属性”,然后在对话框中选择“使用windows身份验证”。 

  3) 试试一试,不行。在看看安全性设置 4 同样右键,选择“属性”,然后打开“安全性”选项卡。 5 在选项卡中,选择身份验证为“SQL Server和 Windows 。

4.datagridview怎样隐藏不需要显示的字段。

该部分采用手动添加的方法:具体代码如下

           this.dataGridView1.AutoGenerateColumns = false; // 不允许自动创建列
           // 添加想要的字段
           DataGridViewTextBoxColumn  col1 = new DataGridViewTextBoxColumn();
           DataGridViewTextBoxColumn  col2 = new DataGridViewTextBoxColumn();

           //列头名称       
           col1.HeaderText = "编号";
           col2.HeaderText = "房间号"

           //绑定数据库中对应的列!

           col1.DataPropertyName = "RoomID";
           col2.DataPropertyName = "Number"; 

           //添加自定义的列

           this.dataGridView1.Columns.Add(col1);
           this.dataGridView1.Columns.Add(col2);

           //绑定数据源

          dataGridView1.DataSource = RoomManager.GetAllRooms();   

5.datagridview中DataGridViewComboBoxColumn怎样绑定数据。

6.DataGridViewComboboxCell 值无效 解决方案;

 1)必须确定,给DataVridView赋值,是在DataGridViewComboBox已经绑定了内容之后。说明:此方法亲身经历过。
 2)关于数据类型不一样的问题,如果是数值型字符和数值型数据,则在绑定后,会出现"System.ArgumentException:DagaGridViewComboBoxCell值無效"的錯誤
 解决方法:在构造函数中增加以下代码:
           InitializeComponent();
  //处理掉DataGridViewComboBoxColumn绑定数据源后,再绑定到DataTable中的Column时,提示"System.ArgumentException:DagaGridViewComboBoxCell值无效"的错
  this.dataGridView1.DataError += delegate(object sender, DataGridViewDataErrorEventArgs e) { };
3)DataGridView中发生以下异常  System.ArgumentException:DataGridViewComboBoxCell值无效 
  要替换此默认对话框,请处理DataError事件
    在构造函数中增加以下代码:
  InitializeComponent();
  //处理掉DataGridViewComboBoxColumn绑定数据源后,再绑定到DataTable中的Column时,提示"System.ArgumentException:DagaGridViewComboBoxCell值无效"的错
  this.dataGridView1.DataError += delegate(object sender, DataGridViewDataErrorEventArgs e) { };