在 C# 中创建了 temp table,我试图在其中复制表,一个 sqlexception(无效的对象名称'#xyz'。)创建 temp table 的正确方法吗
created temp table in C#,i tried to copy tabls in it, an sqlexception(Invalid object name '#xyz'.)is it right way to create temp table
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=.;AttachDbFilename=C:\Users\Amit\Documents\ghf.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlDataAdapter sda = new SqlDataAdapter(("create table #xyz(pid int, pname nvarchar(50),pamount nvarchar(50),cid int,cname nvarchar(50)"), con);
dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
SqlConnection con = new SqlConnection(@"Data Source=.;AttachDbFilename=C:\Users\Amit\Documents\ghf.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand cmd = new SqlCommand("insert into #xyz (pid, pname, pcost , cid ,cname) select product.pid,product.pname,product.pcost ,category.cid ,category.cname from product inner join category on product.cid = category.cid", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
临时 table 仅对创建它的连接可见。
要使用临时 table,您的插入 SqlCommand
必须使用与创建 table SqlCommand
相同的 con
对象,而无需关闭连接-之间。
要按原样使用代码,您必须使 table 成为实际的 table 而不是临时 table(去掉 #),但是您的 button1_click
事件处理程序将需要先检查 table 是否存在,然后再尝试创建它,并且前一个 运行 的数据仍将在其中。
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=.;AttachDbFilename=C:\Users\Amit\Documents\ghf.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlDataAdapter sda = new SqlDataAdapter(("create table #xyz(pid int, pname nvarchar(50),pamount nvarchar(50),cid int,cname nvarchar(50)"), con);
dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
SqlConnection con = new SqlConnection(@"Data Source=.;AttachDbFilename=C:\Users\Amit\Documents\ghf.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand cmd = new SqlCommand("insert into #xyz (pid, pname, pcost , cid ,cname) select product.pid,product.pname,product.pcost ,category.cid ,category.cname from product inner join category on product.cid = category.cid", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
临时 table 仅对创建它的连接可见。
要使用临时 table,您的插入 SqlCommand
必须使用与创建 table SqlCommand
相同的 con
对象,而无需关闭连接-之间。
要按原样使用代码,您必须使 table 成为实际的 table 而不是临时 table(去掉 #),但是您的 button1_click
事件处理程序将需要先检查 table 是否存在,然后再尝试创建它,并且前一个 运行 的数据仍将在其中。