zoukankan      html  css  js  c++  java
  • 插入空值并返回ID的问题终于解决

    上次存储过程那个问题终于解决了,哎

    SQL语句产生的数据集要用Cmd.ExecuteReader()读取,怎么看执行一条SQL语句后产生的是数据集,个人感觉是查询出来的是一个表格的形式就是数据集,读取这些信息的话就用Cmd.ExecuteReader().

    就上次的需求代码如下:

    存储过程:

    drop proc Reader
    go
    create procedure Reader
    @dtname varchar(50)
    as
    declare @sqlcmd varchar(100)
    set @sqlcmd='insert into '+@dtname+' default values select SCOPE_IDENTITY()'
    exec(@sqlcmd)

     C#代码: 

    SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");
    con.Open();
    SqlCommand cmd
    = new SqlCommand("Reader",con);
    cmd.CommandType
    = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue(
    "@dtname","Student");
    SqlDataReader reader
    = cmd.ExecuteReader();
    while (reader.Read())
    {
    Console.WriteLine(reader[
    0].ToString());
    }
    Console.ReadKey();

     这样就可以向一个表中插入一条空的记录并返回这条记录的ID值,嘎嘎

    另外还有几个SQL语句比较有意思:

    (1) 获取SQL中的所有数据库:

         exec sp_helpdb
         执行后会产生一个结果集(以表形式出现)
         如何用C#代码调用的话

    SqlDataReader reader= Cmd.ExecuteReader()
    while(reader.Read())
    {
    combobox.items.add(reader[
    0].Tostring());
    }

    reader.Close();

    (2)获取数据库中的所有表,除去系统表,这个可以通过判断

       SQL语句:SELECT name FROM sysobjects WHERE type = 'U' and name<>'dtproperties'

       C#代码:

    SqlDataAdapter da = new SqlDataAdapter(
     "SELECT name FROM sysobjects WHERE type = 'U' and name<>'dtproperties'", DBcon);
    DataTable dt
    = new DataTable("sysobjects");
    da.Fill(dt);
    listBox1.DataSource
    = dt.DefaultView;
  • 相关阅读:
    GithubPlus+PicGo + Typora 一键式图床
    快速掌握Linux这篇文章就够了。
    跨行程序员Java进阶--基础语法
    Prometheus(普罗米修斯)
    【学习记录】Golang
    服务器Docker-Compose 安装 Anaconda
    Kubernetes集群部署
    Jenkins部署
    Harbor部署
    Docker、Docker-Compose的安装以及相关使用
  • 原文地址:https://www.cnblogs.com/wangshuai/p/1635692.html
Copyright © 2011-2022 走看看