我正在制作一个像Instagram这样简单的网络应用。我想将每个用户的图像存储在单独的表中,例如:
我收到错误:'@name'附近的语法不正确
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
try
{
if (temp == 0)
{
Guid newGuid = Guid.NewGuid();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["UzytkownicyConnectionString"].ConnectionString);
conn.Open();
string insertQuery = "insert into Uzytkownicy (Id, Login, Password) values (@id, @Uname, @password)";
SqlCommand com = new SqlCommand(insertQuery, conn);
com.Parameters.AddWithValue("@id", newGuid.ToString());
com.Parameters.AddWithValue("@Uname", TextBoxUN.Text);
com.Parameters.AddWithValue("@password", TextBoxPass.Text);
SqlCommand comm = new SqlCommand("CREATE TABLE @name ([Image] VARBINARY (MAX) NOT NULL);", conn);
comm.Parameters.AddWithValue("@name", TextBoxUN.Text);
com.ExecuteNonQuery();
comm.ExecuteNonQuery();
Response.Redirect("MainWebSite.aspx");
conn.Close();
}
}
catch (Exception ex)
{
Response.Write("Error: " + ex.ToString());
}
}
答案 0 :(得分:0)
@name是不正确的语法。
您正在尝试执行此特定代码行:
“CREATE TABLE @name([Image] VARBINARY(MAX)NOT NULL);”
针对sql数据库。 SQL不知道@name是什么。
对于hacky,但正确的语法,你应该这样做:
...
string tablename =“somename”; ...
“CREATE TABLE”+ tablename +“([Image] VARBINARY(MAX)NOT NULL);”
答案 1 :(得分:0)
你创建了一个名为" @ name" 使用任何其他名称
CREATE TABLE table_name([Image] VARBINARY (MAX) NOT NULL);", conn);
答案 2 :(得分:0)
我认为你的意思是写@Uname?
正如其他人所说,@ name不是有效的表名。
尝试做这样的事情:
string tablename = "Bob123";
SqlCommand comm = new SqlCommand(""CREATE TABLE " + tablename + " ([Image] VARBINARY (MAX) NOT NULL);", conn);