从C#,如何显示“a”的结果;将表脚本设置为“创建到查询”;在文本框中?
我有一个问题 查询:从C#,如何显示“a”的结果;将表脚本设置为“创建到查询”;在文本框中?,c#,sql,C#,Sql,我有一个问题 查询: declare @vsSQL varchar(8000) declare @vsTableName varchar(50) select @vsTableName = 'dbo.MyTableName' select @vsSQL = 'CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10) select @vsSQL = @vsSQL + ' ' + sc.Name + ' ' +
declare @vsSQL varchar(8000)
declare @vsTableName varchar(50)
select @vsTableName = 'dbo.MyTableName'
select @vsSQL = 'CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10)
select @vsSQL = @vsSQL + ' ' + sc.Name + ' ' +
st.Name +
case when st.Name in ('varchar','varchar','char','nchar') then '(' + cast(sc.Length
as varchar) + ') ' else ' ' end +
case when sc.IsNullable = 1 then 'NULL' else 'NOT NULL' end + ',' + char(10)
from sysobjects so
join syscolumns sc on sc.id = so.id
join systypes st on st.xusertype = sc.xusertype
where so.name = @vsTableName
order by
sc.ColID
select substring(@vsSQL,1,len(@vsSQL) - 2) + char(10) + ')'
查询结果:
我尝试在listBox1\u SelectedIndexChanged中应用此查询,以便在listbox的每个选定项的文本框中显示
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(strConnect))
{
con.Open();
using (SqlCommand comQuery = new SqlCommand(@" declare @vsSQL varchar(8000)
declare @vsTableName varchar(50)
select @vsTableName = '@SelectedTableFormListBox'
select @vsSQL = 'CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10)
select @vsSQL = @vsSQL + ' ' + sc.Name + ' ' +
st.Name +
case when st.Name in ('varchar','varchar','char','nchar') then '(' + cast(sc.Length
as varchar) + ') ' else ' ' end +
case when sc.IsNullable = 1 then 'NULL' else 'NOT NULL' end + ',' + char(10)
from sysobjects so
join syscolumns sc on sc.id = so.id
join systypes st on st.xusertype = sc.xusertype
where so.name = @vsTableName
order by
sc.ColID
select substring(@vsSQL,1,len(@vsSQL) - 2) + char(10) + ')'", con))
{
comQuery.Parameters.AddWithValue("@SelectedTableFormListBox", listBox1.SelectedItem);
using (SqlDataReader readerQuery = comQuery.ExecuteReader())
{
textBox1.Text = "";
while (readerQuery.Read())
{
textBox1.Text = ??
}
}
}
}
}
我的问题:我不确定是否使用about select@vsTableName='@SelectedTableFormListBox'
我不知道如何在文本框中显示。我解决了这个问题
改变
select @vsTableName = '@SelectedTableFormListBox'
到
改变
while (readerQuery.Read())
{
textBox1.Text = ??
}
到
while (readerQuery.Read())
{
textBox1.Text = ??
}
while (readerQuery.Read())
{
textBox1.Text = readerQuery[0].ToString() ;
}