C# SQL内部联接,@Parameter-不筛选结果

C# SQL内部联接,@Parameter-不筛选结果,c#,sql-server,inner-join,C#,Sql Server,Inner Join,提前谢谢你能给我的任何建议 我试图实现的目标:我有一个组合框,我想用table1/columnC填充,按table1/columnB和table2/columnB中的匹配项排序 例如:我想展示所有罗伯茨的土豆,而不是每个人的土豆 我已经为此创建了一个存储过程。目前看起来是这样的: CREATE PROCEDURE [dbo].[myProcedure] @myParameter nvarchar AS SELECT columnA, columnB, columnC FR

提前谢谢你能给我的任何建议

我试图实现的目标:我有一个组合框,我想用table1/columnC填充,按table1/columnB和table2/columnB中的匹配项排序

例如:我想展示所有罗伯茨的土豆,而不是每个人的土豆

我已经为此创建了一个存储过程。目前看起来是这样的:

CREATE PROCEDURE [dbo].[myProcedure]
    @myParameter nvarchar
AS
    SELECT columnA, columnB, columnC
    FROM table1
    INNER JOIN table2 ON table1.columnB = table2.columnB
    WHERE table1.columnB = @myParameter
数据集:

DataSet MyDataSet() 
{
   DataSet ds = new DataSet();

   using (SqlConnection con = new SqlConnection(connectionString))
   using (SqlDataAdapter da = new SqlDataAdapater("myProcedure", con)) 
   {
      da.SelectCommand.CommandType = CommandType.StoredProcedure;

      //the line below gives value to my parameter, which in this case is a WinForms label
      //with the table1/columnB, table2/columnB value (the name that I wish to sort by)
      da.SelectCommand.Parameters.Add("@myParameter", SqlDbType.NVarChar).Value = label.Text.ToString();
      da.Fill(ds);
   }

   return ds;
}
填充我的组合框(代码在表单加载事件中):

哦,如果有关系的话,我所有的列都是nvarchar,除了table1/columnA,它是int

希望我讲得通,有人能给我一两个提示。
关于我试图解决的问题,作为SQL的新手,我阅读了文档,观看了教程,通常花了数小时试图解决这个问题。我只是因为某些原因不能这样做!:-)

我可以说您的存储过程格式不正确,因为您没有
nvarchar()
上的长度在没有长度参数的SQL Server中,切勿使用
char
和相关类型。
。默认值因上下文而异,假设默认值符合您的要求,只会导致难以调试的错误(ahem)

在没有其他信息的情况下,您可以使用
(max)
,但我建议您为参数的长度使用适当的值:

CREATE PROCEDURE [dbo].myProcedure (
     @myParameter nvarchar(max)
) AS
BEGIN
    SELECT columnA, columnB, columnC
    FROM table1 JOIN
         table2
         ON table1.columnB = table2.columnB
   WHERE table1.columnB = @myParameter;
END;
添加如下顺序:

    order by table1.columnB,table2.columnB

如果在存储过程的参数中省略长度nvarchar,则默认为一个字符。例如:nvarchar是nvarchar(1)的同义词。谢谢!工作得很有魅力!有点恼火,这只是一件小事。
    order by table1.columnB,table2.columnB