c#初学者,请问我这个是什么原因

鱼皮泡菜 2017-11-27 03:28:15

请问这个是什么问题
...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
道素 2017-11-28
  • 打赏
  • 举报
回复
你是想把SQL的执行结果先到Listbox中吧,先不说SQL写的对不对,你那么写,只是把那个SQL语句的字符串给了空间 你需要用System.Data的功能连接到数据库,然后执行对应的SQL。再将返回结果 (比一定要用数据库中系统表读取列)

private IEnumerable<string> GetColumnNames(string conStr, string tableName)
    {
        var result = new List<string>();
        using (var sqlCon = new SqlConnection(conStr))
        {
            sqlCon.Open();
            var sqlCmd = sqlCon.CreateCommand();
            sqlCmd.CommandText = "select * from " + tableName + " where 1=0";  // No data wanted, only schema
            sqlCmd.CommandType = CommandType.Text;

            var sqlDR = sqlCmd.ExecuteReader();
            var dataTable = sqlDR.GetSchemaTable();

            foreach (DataRow row in dataTable.Rows) result.Add(row.Field<string>("ColumnName"));
        }

        return result;
    }
不会VS 2017-11-28
  • 打赏
  • 举报
回复
using System.Data.SqlClient; using System.Configuration; //在引用中配置文件 private void listBox1_SelectIndexChanged(object sender, EventArgs e) { SqlConnection sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; sqlCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接; sqlCommand.CommandText = "SELECT column_name FROM user_tab_column WHERE table_name=@name ;"; //指定SQL命令的命令文本; sqlCommand.Parameters.AddWithValue("@Name", this.TextBox1.Text.Trim()); //向SQL命令的参数集合添加参数的名称、值; SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); sqlDataAdapter.SelectCommand = sqlCommand; DataTable csTable = new DataTable(); sqlConnection.Open(); sqlDataAdapter.Fill(csTable); sqlConnection.Close(); this.listBox1.DataSource = csTable; }
吉普赛的歌 2017-11-27
  • 打赏
  • 举报
回复
--查表
SELECT t.name FROM sys.tables AS t

--查字段
SELECT c.name FROM sys.[columns] AS c WHERE c.[object_id]=OBJECT_ID('表名')
听雨停了 2017-11-27
  • 打赏
  • 举报
回复
引用 7 楼 qq_41161984 的回复:
引用
就是想实现图中功能

--数据库中的表名称(这样就可以查询到你说的那四个表)
SELECT name FROM sys.objects
WHERE [type]='U'

--通过表名称查询列名(tab2就好比你的表名称)
SELECT name FROM sys.syscolumns
WHERE id=OBJECT_ID('tab2')
把对应的查询结果给到你的控件上就可以了啊。 大概步骤就是当你的下拉框的值改变时,触发一个事件去执行查询列名的那句sql,然后把查询的结果给到下面那个控件就可以啊
鱼皮泡菜 2017-11-27
  • 打赏
  • 举报
回复
引用


就是想实现图中功能
听雨停了 2017-11-27
  • 打赏
  • 举报
回复
引用 5 楼 qq_41161984 的回复:
引用
我有一个数据库,一个数据库有4张表,我现在有个下拉栏,分别是4张表的选项,我想选中这4张表在下面的listbox中现实表的字段名
1.你用的什么数据库; 2.你有一个下拉框,你要显示的是表名称,还是表的字段名称呢。如果你想通过选择一个下拉框中表的名字来实现在另一个下拉框显示这个表的所有字段名称,那么你就应该有两个下拉框啊
鱼皮泡菜 2017-11-27
  • 打赏
  • 举报
回复
引用
我有一个数据库,一个数据库有4张表,我现在有个下拉栏,分别是4张表的选项,我想选中这4张表在下面的listbox中现实表的字段名
听雨停了 2017-11-27
  • 打赏
  • 举报
回复
引用 2 楼 qq_41161984 的回复:
不太清楚你要问什么哈,你说请问我这个是什么原因,什么是什么原因啊。问题在哪
听雨停了 2017-11-27
  • 打赏
  • 举报
回复
引用 2 楼 qq_41161984 的回复:
ListBox1.text=后面的字符不要用引号引起来啊
鱼皮泡菜 2017-11-27
  • 打赏
  • 举报
回复
鱼皮泡菜 2017-11-27
  • 打赏
  • 举报
回复
j截错屏幕了,重新截一张

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧