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;
  • 相关阅读:
    通过设置iis在局域网中访问网页
    .NetCore集成Dapr踩坑经历
    Api跨域设置
    Win10安装.net2.0/3.0
    C# MVC 全局错误Application_Error中处理(包括Ajax请求)
    使用SignalR从服务端主动推送警报日志到各种终端(桌面、移动、网页)
    C#设计模式学习笔记:(4)建造者模式
    .NET CORE(C#) WPF简单菜单MVVM绑定
    值类型与引用类型的区别
    [博客美化]给你博客添加一个萌萌的看板娘吧
  • 原文地址:https://www.cnblogs.com/wangshuai/p/1635692.html
Copyright © 2011-2022 走看看