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;
  • 相关阅读:
    pm2进阶使用
    javascript装饰器模式
    pupeteer初体验
    重构:从Promise到Async/Await
    # electron-vue 尝试做个网易云音乐
    Kafka监控:主要性能指标
    生产环境Rabbitmq集群安装部署与配置
    Java同步块(synchronized block)
    RabbitMQ高可用镜像队列
    kafka-0.9消费者新API
  • 原文地址:https://www.cnblogs.com/wangshuai/p/1635692.html
Copyright © 2011-2022 走看看